とりあえずやってみました。

まず隠しカラム(width=0のカラム)を作る

    Dim x As ColumnHeader
    Set x = ListView1.ColumnHeaders.Add(, , "ファイル名", ListView1.Width / 3)
    Set x = ListView1.ColumnHeaders.Add(, , "サイズ", ListView1.Width / 5, 1)
    Set x = ListView1.ColumnHeaders.Add(, , "サイズ", 0, 1) '隠しカラム
    Set x = ListView1.ColumnHeaders.Add(, , "更新日時", ListView1.Width / 4, 1)
    ListView1.View = lvwReport

クリックされたColumnHeaderがファイルサイズの場合、SortKeyに2を代入

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
    If ColumnHeader.Index = 2 Then
        ListView1.SortKey = 2
    Else
        ListView1.SortKey = ColumnHeader.Index - 1
    End If
End Sub

実行してみたところ上手く動作しました・・・が、隠しカラムが列境界線ダブルクリックで
簡単に開いてしまうところが難点・・・