Supongo que el código que te adjunto venga a darte solución a tu problema, aunque lógicamente tengas que adaptarlo a tus gustos personales...
Puede que hasta te sea suficiente llenar el ListBox con la Propiedad Sorted=True, que es realidad el meollo de la cuestión.
Y si pones la propiedad de List2.Visible = False, puede que se acerque más a lo que tú quieres...
Saludos y suerte