I can tell you what I would do, but it may be beyond what you can do right now - no offence intended, but it means getting dirty with DBPro object internals. This is also based on your requirement to have a single object per terrain block (although multiple limb objects containing multiple blocks would be more efficient).
I would probably use height maps of 64x64 - that number fits nicely into a single indexed mesh, so you don't need to work with multi-mesh objects, which makes things a little easier.
I'd pre-create all of the objects and exclude them. I'd also use a stack of unused objects, and a list of used objects.
I'd then prepare the objects so that the meshes are ready for immediate use - set up a grid of vertices with x, z, tu and tv components set correctly, indexes set up too.
Then when required, I'd load a heightmap, grab an object from the unused stack, populate the y coordinates from the heightmap, calculate the normals and populate those too, then position and unexclude the object.
You could make this more efficient by preprocessing the y coordinates and your normals into your own file format to avoid calculations at runtime.
Obviously, some of that is potentially threadable, but not all:
- getting the object pointer is not, but you can grab and store that when you create your objects initially.
- Positioning/texturing/unexcluding is not, but you can use a stack to store a 'todo' list of object preparation and carry it out just before you dbSync().
- Both your main thread and your loader thread need access to the unused stack (main to push items on, thread to take items off) and access to that needs to be serialised.
Look for Mikes presentation and code for loading objects from the 2007 convention - that shows how to update meshes directly.
Then take a look at Daves second presentation from the 2008 convention to see his explanation of how he does what you are trying to do.
Get your code working first in a non-threaded way before you attempt to get threading working.
And if you need some help, feel free to ask.