Zakładając że ma mieć to walor edukacyjny, to przy przyjętych założeniach pozostaje Ci:
1. Alokowanie bufora na plik (
https://en.cppreference.com/w/cpp/io/basic_filebuf/setbuf )
2. Ew. zebranie informacji o pozycjach każdego ze słów w pliku tak aby szybciej nawigować do danej pozycji.
3. Skorzystanie z wątków dostępnych w C++ w celu zrównoleglenia operacji.
4. Skorzystanie z mechanizmów systemowych właściwych dla danego systemu operacyjnego.
Co do 1 i 2, miałbym jakieś nadzieje na przyśpieszenie operacji (oczywiście diabeł tkwi w szczegółach i np. warto rozdzielić synchronizację strumieni by zaobserwować przyrost wydajności). Reszta pomysłów raczej wydaje mi się mocno na siłę. Plik z zasady ma dostęp sekwencyjny a zwykłe wrotki nie pokonają bariery dźwięku po doczepieniu silników rakietowych :)