Я сделал это, используя метод CopyTo, чтобы скопировать элементы в массив с длиной подсчета выбранных элементов, а затем зациклить вокруг этого массива, удаляя каждый соответствующий элемент из ListBox1.
private void button1_Click(object sender, EventArgs e)
{
object[] itemsToRemove = new object[listBox1.SelectedItems.Count];
listBox1.SelectedItems.CopyTo(itemsToRemove, 0);
foreach (object item in itemsToRemove)
{
listBox1.Items.Remove(item);
listBox2.Items.Add(item);
}
}