Tienes varias formas de hacerlo.
1.- Si lo estás llenando con un dataset puedes darle el sorting que necesitas.. ejemplo:
ds.Tables[0].DefaultView.Sort = "campo DESC"; 
2.- Puedes barrer los elementos de tu listbox y guardarlos en un arraylist aplicarle el sorte y regresarle a tu objeto ese array sorteado..
ejemplo: 
 Cita:  ArrayList array1 = New ArrayList ()
int i = 0;
for (i = 0;i<listbox1.Items.Count;i++)
  array1.Add(listbox1.Items(i).Text);
 
array1.Sort()
listbox1.Items.Clear()
for (i=array1.Count-1;i<0;i--)
  listbox1.Items.Add(array1(i))
    3.- Hacer uso de la implementacion IComparer 
Ejemplo: 
http://www.experts-exchange.com/Prog..._21151194.html 
Salu2