How to let user add multiple sub-content fields in the main content?
If apartment is one content type, and unit is another content type, you can use entityreference module to reference units in apartments. You will create in apartment content type - entityreference field with unlimited values, type of referenced entity would be unit content type - user will be able then to add as many units to his apartment as he wants.

You can even create a view of entity reference display, and use it for selection of available options in your entityreference field.

http://www.lullabot.com/blog/article/entityreference-multiselectors - also something about multiselector widgets for entityreference field.