There's probably a way to do what you want but when I read your last comment my mind went to ggplot2. You didn't say it has to be a heatmap.2
solution so here's a ggplot2 one. Though I'm assuming the gplots version is of mor interest:
library(reshape2, ggplot2)
dat <- melt(my.matrix)
ggplot(dat, aes(x=Var2,y=Var1))+
geom_tile(aes(fill = value),colour='black') +
scale_fill_gradientn(colours=c("green","gray","red"),
values = rescale(c(min(dat$value), 1000, max(dat$value)))) +
coord_equal()