Io sostituirei la riga
listluoghi.AddTwoLines(dbCursor.GetString ("nome"),"a " & dist & " metri" ) '
con
Nome(n)=dbCursor.GetString ("nome")
Distanza(n)=dist
Poi riordinerei (QuickSort,BubbleSort o altro) i 2 array
Nome(0 to dbCursor.RowCount-1) as string
e
Distanza(0 to dbCursor.RowCount-1) as integer
e poi con un bel ciclo
For j = 0 To dbCursor.RowCount-1
listluoghi.AddTwoLines(Nome(j),"a " & Distanza(j) & " metri" )
next
visualizzerei la ListView.
Puoi mettere anche un paio di Option Button (o Radio Button) "Ordina per nome" e "Ordina per distanza"; in tal modo hai 2 modalità di visualizzazione.
Non sarà "all'ultima moda informatica" ma è una soluzione che per qualche decina o centinaio di record funziona.