Per salvare l'ordinamento delle colonne devi registrarti la lista dei campi(indice del campo nel tuoRS) da mettere in ogni colonna che ti caricherai in un array (aCols).
Poi fai un ciclo del genere per impostare le colonne e caricare i dati.

codice:
'Intestazioni colonna
listview.ColumnHeaders.Clear
for i=0 to ubound(aCols)
   Select case aCols 'verifichi il campo da immettere
   Case 0 'Nome
      listview.ColumnHeaders.add ,"Nome","Nome"
   Case 1 'Cognome
      listview.ColumnHeaders.add ,"Cognome","Cognome"
   Case 2 'Indirizzo
      listview.ColumnHeaders.add ,"Indirizzo","Indirizzo"
   ...
   end select
next i

'popolamento
while not tuoRS.eof
   ListItems.ListItems.add ,tuaChiave,tuors(acols(0))
   ListItems.ListItems(tuaChiave).SubItems(1)=tuoRS(acols(1))
   ListItems.ListItems(tuaChiave).SubItems(2)=tuoRS(acols(2))
   ...
   tuoRS.movenext
wend