Чтобы удалить несколько элементов, вам нужно разобрать элементы в обратном порядке.
protected void removeButton_Click(object sender, EventArgs e)
{
for (int i = listBox.Items.Count - 1; i >= 0; i--)
listBox.Items.RemoveAt(i);
}
Если вы проанализируете как обычно, результат будет довольно неожиданным.
Пример:
Если вы удалите элемент 0, то элемент 1 станет новым элементом 0.
Если вы сейчас попытаетесь удалить то, что, по вашему мнению, является пунктом 1,
вы фактически удалите то, что видите как пункт 2.