Using "Add another" field widget on non-fields (extra_fields or Entity API properties)
The Examples project has an "ajax example" submodule that shows how such a thing can be done with #ajax in a form. Should get you far.