Hi bcworkz, thanks for your response. I think you helped me before with passing a shortcode as parameter to another shortcode - that's totally working now with the curly bracket method.
So, I've been learning about metaboxes. One thing I found was how to put the post editor into a metabox, so it can be moved around like all the others: this code in function.php
It hooks into admin_head to add new styles, and that looks useful for customizing the appearance of the metaboxes.
I was reading another article though, and I see that add_meta_box has a parameter to set each box in the main or side column. Adding extra columns would probably require digging deeper to understand how that's set up.
There are some "page builder" plugins out there, often using widgets/sidebars to layout the whole page. I think what I'm looking for is something like that, but with custom fields/metaboxes.
This is what I imagine: create a metabox called Layout, in which it's possible to add rows. For each row, you can choose the columns - whole, half/half, main/side, 3 equal, 4, etc. Then the content of each column can be any of the metabox/custom fields available for the post, including main content in the post editor metabox.
Getting a list of available metaboxes shouldn't be too hard, and that can be a selectable drop-down in each column.
For it to work, the layout metabox should override the post content, so that the layout can display all the custom fields on the page... Ah, when I put the post editor in a metabox, I can name it Layout, and create another metabox called Content.
It's looking possible but quite a task. I'll post something here if I make any more progress. :)