How do you populate a layout using blocks?

You will probably want to use one of the dynamic component extensions for this, so that you can create content on the fly.

Try

CompCreator