Interesting. Have you tried sorting the rows? I don't know whether that would take longer or not. If you can sort the data, then afterward you can change the countif to something like this in column B:
Code:
=IF($A2=$A1,$B1+1,1)
If I haven't bobbled the syntax, that'll list the word count for each word in the last row (rather than every row) where the word appears—and I expect it'll work a lot faster than a COUNTIF.