1) Смотри на код TbGroupGridView и TbTotalSumColumn, у его разработчика ровно та же задача была, что и у тебя. Он ее успешно решил. В его коде готовое для тебя решение. Тебе остается скомпоновать и чуть изменить.
2) Гораздо производительнее, что актуально при больших объемах данных, не использовать расширение, а вывести данные как тебе надо обычными средствами. Echo '';
3) Посоветую для прорисовки использовать не серверные мощности, а клиента (с тем же ReactJS это получится очень красиво, расширяемо и компактно).