MDX does send a "headerclick" event.
By checking the "headerevent" page you can get the column number that was clicked on
Indicates the column most recently affected by an event triggered by the user.
which you can get by querying item 1 in the listviews did.
if you mirror the listviews content in a hidden @window you could then use /filter to sort based on the clicked column taking advantage of /filter's column sorting. Then issue a savebuf/loadbuf to the listview based on the window or even a filter directly. I know for sure loadbuf works with MDX not sure about /filter.