ItemAtPosは何も無いところでは-1を返す(第2引数がfalseなら項目数を返す)ので、
↓こうする

if (index >= 0 && index < ListBox1->Count)
  ListBox1->Selected[index] = true;