Yes, it seems to handle a little longer of a string and a little smoother scroll but still I'm curious to figure it out.

How about adding a Text property to the UC so you can at least see the static text its going to scroll in Design Mode? Add it next to the Color and ScrollSpeed?

Also, how about instead of trying to figure out which squares to draw gray and which to draw in the property color in loops and arrays, you just blank out all the squares with gray and draw the lines and then do the .DrawString? You may have to draw the gray lines again but that should still save you valuable processing time not having to loop several times.