Based on @b.gatessucks answer and on @RahulNarain comment tip, I created this functions for the multiplicative decompose case. I changed @b.gatessucks method for seasonality to keep it closer from R method, and used TemporalData to easily handle time interval.
decompose[data_,startDate_]:=Module[{dateRange,plot,plotOptions,observedData,observedPlot,trendData,trendPlot,dataDetrended,seasonalData,seasonalPlot,randomData,randomPlot},
dateRange={{startDate,1},Automatic,"Month"};
(*Setting Plot Options*)
plotOptions={AspectRatio -> 0.2,ImageSize-> 600,ImagePadding->{{30,10},{10,5}},Joined->True};
(*Observed data*)
observedData=TemporalData[data,dateRange]["Path"];
observedPlot=DateListPlot[observedData,Sequence@plotOptions];
(*Extracting trend component*)
trendData=Interpolation[MovingAverage[observedData,12],InterpolationOrder->1];
trendPlot=DateListPlot[{#,trendData[#]}&/@observedData[[All,1]],Sequence@plotOptions]//Quiet;
dataDetrended=N@{#[[1]],#[[2]]/trendData[#[[1]]]}&/@observedData//Quiet;
(*Extracting seasonal component*)
seasonalData=Mean/@Flatten[Partition[N@dataDetrended[[All,2]],12,12,1,{}],{2}];
seasonalData=TemporalData[PadRight[seasonalData,Length[data],seasonalData],dateRange]["Path"];
seasonalPlot=DateListPlot[seasonalData,Sequence@plotOptions];
(*Extracting ramdon componet*)
randomData=TemporalData[dataDetrended[[All,2]]/seasonalData[[All,2]],dateRange]["Path"];
randomPlot=DateListPlot[randomData,Sequence@plotOptions];
(*Ploting data*)
plot=Labeled[
Grid[Transpose[{Rotate[Style[#,15,Bold],90\[Degree]]&/@{"observed","trend","seasonal","random"}
,{observedPlot,trendPlot,seasonalPlot,randomPlot}}
]
]
,Style["Decomposition of multiplicative time series",Bold,17]
,Top
]
]
Using the functions like this:
rawData = Import["http://www.massey.ac.nz/~pscowper/ts/cbe.dat"][[2 ;;, 3]];
decompose[rawData, 1958]
We get:

Almost exactly as in R!
I say "almost" because R don't use interpolation, so the MoveAverage lost 12 point in R that we don't lose in this function due to interpolation method.
I prefer to keek the ticks in each plot, I find it's better to read. It's a question of personal options.