Scusa, ma dal momento che carichi tu i dati, non li puoi inserire nella sequenza che ti interessa mentre lo fai?
Se invece la griglia e collegata ad un RecordSet, usa la clausola ORDER BY nella SQL.
Per i sub-totali, lo puoi fare a mano... non mi pare sia difficile.
Cmq, di OCX cosi' non mi pare di averne mai visti ma si sa', internet e' una miniera per queste cose.
Ciao.