I know reshape or melt is probably the "right" way to do it, but with your data it's easy enough to fake it because the columns are sequential.
require(zoo)
stn2 <- stn[,-1] # Extracts everything but the Year column
stn2 <- as.vector(t(stn2)) # Turns your matrix into one long vector
date <- apply( # Make a date column with a character vector.
cbind(
rep( stn$Year,each=12 ),
rep( 1:12, times=length(stn$Year) )
), 1, paste, collapse="-" )
date <- as.yearmon(date, "%Y-%m") # Convert it to a yearmon object
stn2 <- data.frame("Date" = date, "Rain" = stn2) # Make a data frame