Travis,
I did a very similar app recently and the user wanted to be able to allow his end users the ability to sort on any of 175 fields once the initial query was done. I wrote a custom header class and then added the header class to the Grid columns. Then in the header class Click event it just did a SELECT * FROM cSomeCursor ORDER BY Column. However, one other caviat was the ability to sort on multiple columns at the same time as well.
So once you pull your first query just requery it again in a different order if there aren't that many records. In the second instance I did ORDER BY Column1, Column2.