Sorry for all the disturbance. I see it is my own CNNotify that prevented it.
In my Delphi version I call inherited for messages I do not handle.
But when converting to Lazarus/Mac from Delphi/Windows I could not successfully call inherited (private) and had simply left that part... commented out.
Solution: Commenting out my entire CNNotify in Lazarus and everything seems to work.
For references for others - here is how to use:
procedure TFormExample.MyListViews_ColumnClick_EventHandler(Sender: TObject; Column: TListColumn);
var
TmpIndex: Integer;
{$IFDEF mymsFPCDevTool}
TmpCallBackCompare: TLVCompare;
{$ENDIF}
begin
if Column.Tag = 0 then
Column.Tag := 1
else
Column.Tag := 0
;
TListView(Sender).Tag := Column.Tag;
TmpIndex := Column.Index;
//--
{$IFDEF mymsDELPHI}
TListView(Sender).CustomSort(nil, TmpIndex);
{$ENDIF}
{$IFDEF mymsFPCDevTool}
//--
// NOTE: CustomSort added in Lazarus 1.9: https://bugs.freepascal.org/view.php?id=8536
// NOTE: If passing *nil* Lazarus will use *0* as columnidx to oncompare handler no matter what - so we need to set both
//--
TmpCallBackCompare := @imfLView_4Compare_LCL;
TListView(Sender).CustomSort(TmpCallBackCompare, TmpIndex);
{$ENDIF}
end;