The recent gridGraphics
package could probably do what you asked: return the plot as a grob.
mat <- matrix(rnorm(100), ncol=10)
library(corrplot)
corrplot(cor(mat))
library(gridGraphics)
grab_grob <- function(){
grid.echo()
grid.grab()
}
g <- grab_grob()
library(gridExtra)
grid.newpage()
grid.arrange(g,g,g,g)