Buen lo de seleccionar toda una fila es facil en propiedades del control marca FullRowSelect, lo de ordenar en la pestaña orden marca Sorted, y puedes poner este codigo:
Código:
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
If ListView1.SortOrder = lvwAscending Then
ListView1.SortOrder = lvwDescending
Else
ListView1.SortOrder = lvwAscending
End If
ListView1.SortKey = ColumnHeader.Index - 1
End Sub
Y asi dependiendo de la columna que se de click ordenara