Adding group of fields in custom module
I hate to say that there is an only way that I know to have multi-value field groups in Drupal 7 is Field Collection module. It is based on Entity API. It creates a new entity of which you can add any number of fields, and attaches that to the content type or any other entity you create.