Code for group programatically fields on edit form similar to Flexifield
Have you tried the first link on that page? To the dev version of CCK? I just had to do this very thing this morning. The dev version of CCK has an additional module included with it called multigroup. You create a new field of the multigroup type, then add all the fields you want to include in it. Set the number of repeats on the multigroup to unlimited, and you (or your users) can then add as many groups as necessary.