El truco esta programado a nivel API en una clase que realiza un subclassing de la cabecera de un ListView.
1. Podemos manejar tantos ListView como queramos.
2. Es API pura, con lo que su uso se puede extender a ListView que no sean VCL
3. Admite FullDrag:= true para trasladar las columnas de sitio.
4. No se borra la flechita al redimensionar una columna.
5. No se puede asignar un ListView a dos TSortIcon.
6. Se puede usar como base para crear otra clase que maneje todos los ListView de un formulario
Podéis encontrar el código y ejemplo aquí de TSortIcon.
Saludos.