Allora provo a spiegarti come fare in poche parole:

AVVIO: fai una funzione che crea un nuovo thread e lo avvia chiamando il delegate che chiamiamo [CreateItemCollection]

Nella [CreateItemCollection] metti il tuo ciclo for e dai come risultato di tutto una collezione di ListViewItem

Al ritorno dal thread, carichi la collezione nella ListView mettendo all'inizio un BeginUpdate e in fondo un EndUpdate.

Tutto fatto

Spero di essermi spiegato...