I didn't see the point of the layout but thought you could just increase your margin for the first image call and leave out the second one? You wanted "low", "mid", "high" along with tickmarks at the ends an[d] in the middle
which I found confusing. Perhaps this will further the discussion:
layout(matrix(c(1,2), nrow = 1), widths = c(4,1), heights = c(4,4))
layout.show(2)
par(mar = c(0,0,0,2))
image(t(matrix(1:30, ncol = 1, nrow = 30)),
col = pal, xaxt = "n", yaxt = "n", frame.plot = FALSE)
axis(4, at=(30:1)/30, labels=1:30, cex.lab=0.6)