Насколько я могу судить, использование любого из методов .NET для выбора большого количества элементов намного медленнее, чем прямой вызов PInvoke, передача сообщения LB_SETSEL (0x185) в элемент управления с флагом, указывающим, Вы хотите выбрать (1) или отменить выбор (0), а также магическое значение (-1), которое указывает, что изменение должно применяться ко всем элементам.
[DllImport("user32.dll", EntryPoint = "SendMessage")]
internal static extern IntPtr SendMessage(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam);
// Select All
SendMessage(listBox.Handle, 0x185, (IntPtr)1, (IntPtr)(-1));
// Unselect All
SendMessage(listBox.Handle, 0x185, (IntPtr)0, (IntPtr)(-1));