Forse una chiamata a SuspendLayout e ResumeLayout per interrompere e ripristinare l'aggiornamento grafico può aiutare.

Ad ogni modo, il problema principale è dovuto al fatto che proprio il controllo ListView non è adatto alla visualizzazione di un elevatissimo numero di elementi, occupando parecchia memoria rispetto a controlli più leggeri e adatti, come una DataGrid.