Quello di far scegliere il gruppo direttamente all'utente è un pò un contorto e va pensata bene, ma se ne è parlato e magari dipende dall'ambito, immagina se in una scuola un allievo si scegli il gruppo docenti oppure il gruppo genitori che in linea di massima vedono tutto quel che vede il gruppo allievi........
Qui starà a te fare le tue considerazioni.
Mi viene in mente che potresti usare chronoforms, (ma i passaggi sono da verificare) se installi i form demo c'è ne uno specifico per la registrazione utenti, tu a quello non farai altro che aggiungere un read db in On load per leggere la tabella dei gruppi con inserito una clausola per non poter scegliere/leggere superadmin, admin e quant'altro (capisci che sarebbe un poco sconveniente), poi in On submit inserisci un save DB che salva il gruppo.
Ora in quale tabella salva e soprattutto cosa, non ne ho idea, ma la strada potrebbe essere questa.