Detecting a column click and then manually sort the list is still a workaround.
If Plus! scripting supported real callbacks you could use the proper Windows APIs to do the job in one go.
Now you need to read the entire list, sort it manually, and put everything back in the list. This is a very very very slow method, especially on larger lists.
Anyways, you might be interested in:
[Question] ListViewControl - Numeric sortable Columns