I’d using a regular expression for this. In the Timer’s Action (which can run every 750 ms, really), try something like this:
dim count as integer
dim rx as new RegEx
rx.SearchPattern = "\\b\\w+\\b"
dim match as RegExMatch = rx.Search( TextArea1.Text )
while match isa object
count = count + 1
match = rx.Search
wend
TextArea1_WordCount = count
Unless you expect the text to get really long, I wouldn’t expect the user to notice this code.