Allora...togli "Label1.Caption = List1.List(List1.ListIndex)" dal mouseup (è qua che ti prende il 3 come listindex, mentre nel mousedown ti prende il 1°, te visualizzi il 3 per il semplice motivo che il mouseup avviene subito dopo...)

Ti spiego come fare, in poche parole: Salvi l'index nel mousedown, dopo di che quando avviene il mouseup reimposti il listindex in base a quello che avevi salvato. Ti posto un esempio:

codice:
Option Explicit
    Dim Ind As Integer

Private Sub Form_Load()
    List1.AddItem "1"
    List1.AddItem "2"
    List1.AddItem "3"
End Sub

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Ind = List1.ListIndex
End Sub

Private Sub List1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    List1.ListIndex = Ind
End Sub