It works, thank you for advise. However, the grid slows down considerably. Even when I commented the code in event procedure it was still slow. Only when I commented the whole event procedure, scrolling speed restored to normal. I guess event firing by itself is pretty heavy load. I'm thinking maybe I can still use approach similar to the one I used for listview - have two separate columns in my recordset - one with numeric values and another with string values formatted "h:mm". Then hide column with numeric values and somehow hook onto column click event in grid and change sorting column in code? Is it possible? Could be faster...
And one more thing while we are on the topic. I noticed that after grid is reloaded with new data, even that last dataset was sorted on some column (column header still shows sorting icon), the data are not sorted. Sorting occurs only when I click on column header again. Is there way to force sorting right after data is loaded into grid?