Would there be an option to an option for each user to basically save their own column layout, so basically re-order, choose which ones should be shown (from available) and save these as default?
With v3 you can set a table to be reorderable() and you can set what the sort field name is in the db. I'm pretty sure it supports relations, so I'm guessing you can leverage those.