Ho dovuto fare una cosa simile e ho utilizzato il seguente controllo:

http://www.denisbauer.com/ASPNETCont...ierarGrid.aspx

E' fatto bene e semplice da utilizzare.
Michela