Use CSS. JSF doesn't re-invent display formatting services when it can use existing functionality and stuff like this is what css is all about.
You can do this sort of basic tiling using the core JSF panelGrid by specifying "columnClasses" attribute and defining 2 CSS classes, one for the menu pane and one for the content pane. Adjust their widths (and other visual attributes) as desired.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.