Always use a small delay inside the while loop, else it ll eat up all your CPU resources.
You can change the color of more than one subset of the string, if that's what you're asking. To accomplish this, just repeat the same properties (Text.SelStart, Text.SelEnd, and Text.FontColor) in the same property node or another one. Essentially you're just selecting a different string subset and running the FontColor property on it, too.
To my knowledge, there's no way to apply BGColor or TextColor to a string subset. (At least not on regular string controls or indicators.) As discussed before, if you get really desperate you can use a picture control. I don't think there's any straightforward way to get the "highlight" effect on a subset or multiple subsets of the string. By highlight, I'm assuming you mean changing the background color?
I hope it helps...