Question 2. Ian gives an excellent explanation for the layout of the heatmap.2 components. You can change the layout (number of cells in a table where each element is "plotted", e.g. 2x2, 2x3, 3x2, 3x3) and the position of each of the elements of the heatmap (i.e. heatmap, row dendrogram, column dendrogram, and key).
For example:
# Define custom layout for heatmap
mylmat = rbind(c(0,3,0),c(2,1,0),c(0,4,0)) # creates 3x3 table with location of heatmap elements defined
mylwid = c(1.5,4,0.5)
mylhei = c(1.5,4,1)
# Plot your heatmap
heatmap.2(matrix.name, lmat=mylmat, lwid=mylwid, lhei=mylhei, ...)
Although you cannot change the key to be vertical versus horizontal (as far as I know!), you can position it anywhere around the heatmap and/or dendrograms.