prvi deo rešenja je da ikone tražiš u posebnom tredu. dok ih ne učitaš, umesto "pravih" prikazuješ default ikone za datu extenziju (za ovo verovatno postoji neki API).
drugi deo je da učitavaš ikone samo onih fajlova koji se trenutno vide u ListView, i da to ima prioritet, pa tek kada to zaviši onaj drugi tred, onda da učitava i ostale u folderu. naravno, ako u međuvremenu korisnik skroluje ListView, pa drugi fajlovi postanu vidljivi, opet prioritet ima učitavanje ikona za vidljive fajlove.
a probaj i da to učitavanje radiš u više (4, 8?) tredova paralelno. možda bude brže..