Puedes intentar usar el evento OnClick, sólo que tendrás que guardar en una variable el índice del último item seleccionado para determinar si realmente cambió:
Código Delphi
[-]
procedure ListBox1Click(Sender: TObject);
begin
if ListBox1.ItemIndex <> ItemIndex then
begin
ItemIndex := ListBox1.ItemIndex;
end;
end;
// Saludos