As you said, you need to handle KeyDown event and capture Key of the Tab. But Tab key is a default key for setting focus to next tab indexed control. I think, you need to set e.Handle = true or set IsTabStop = true to rest of your controls.
Use,
richTextBox.Select(startIndex, length)
You need to manipulate the startIndex and length each word using string functions.