Please see my plot below:

my code:
> head(data)
I don't think ggplot supports this out of the box, but you can use heatmap:
heatmap(
as.matrix(dat), Rowv=NA,
Colv=as.dendrogram(hclust(dist(t(as.matrix(dat)))))
)

Note this won't look like yours because I'm just using the head of your data, not the whole thing.
Here we specify the clustering manually with a dendogram derived from your hclust with the Colv argument. You can specify the clustering manually too through the Colv argument if the one used by default doesn't line up with what you want.