Я думаю что по другому, как не перебором, не сделать. Если и найдется какой то класс, выполняющий подобную операцию — он, скорее всего, в своей основе будет иметь перебор.
Только что наваял пробный проект в в VS2008. Так у меня заполнение ListView на 1000 элементов визуально происходило дольше, нежели операция «Выбрать все».
Вот код, которым выбирал все элементы:
foreach (ListViewItem listItem in listView_Test.Items)
{
listItem.Checked = true;
}
Так же и для снятия всех «выделений»:
foreach (ListViewItem listItem in listView_Test.Items)
{
listItem.Checked = false;
}