primero tienes que cargar todos los registros en memoria (opción egoLoadAllRecords=TRUE), definir el campo en la propiedad KeyField y luego la propiedad SHowGroupPanel a TRUE y lixto, ya puedes agrupar como se requiera.
nada más vas moviendo las columnas en la parte del panel para agrupar y ya puedes ir dando una vista así como quieres. además de ordenamr, mover, sumar, avg, , etc, etc, etc.
El detalle es, que habría que ver el rendimiento, ya que cargar miles y miles de registros en memoria puede ser un poco lento. Yo lo he probado en una LAN cargando 16000 registros y se tarda algo así como 4 segundos

. Claro esta que habría que ver si vas a cargar esa cantidad de regitros, ya que podría haber una mejor manera

. Pero si no son muchos registros (habría que ver cuan mucho es mucho) funciona bien.
...olvide mencionar lo del dataset y ese rollo, pero supongo que ya sabes como conecar un grid a un dataset....