As you said this should be easy to do with A4J / RichFaces. Personally I'd say go take a look at ICEfaces (http://www.icefaces.org) their AJAX is easier to use (it's already baked into the components).
What you should be able to do is have a form in one column, do an AJAX submit of that form to the backing bean, then have the elements in your other column bound to the objects the form is updating then simply refresh the second column (in a4j an update region, should cascade down).
Here's a quick implementation. First, create a data table with a collection of items perhaps outjected by @DataModel. In each row, you will define an Ajax4jsf command link, which performs a data model selection exception does so using an Ajax request (similar to what I talk about in chapter 12)
Now let's say that the select() method does @DataModelSelection then outjects the result. I always recommend outjecting under a different variable name because of some quirkness with @DataModelSelection and outject (trust me on this).
Now, in the right hand column, you have an output panel that is Ajax rendered (the other approach is to use reRender="detailPanel" on the <a:commandLink>) .
There are tons of other ways to populate the context variable holding a reference to the selected record. But I think the interaction of the Ajax should be clear now. [ October 10, 2008: Message edited by: Dan Allen ]