I would draw a single textured quad on the ground (i.e. lying on the XZ plane), as big as the visible area should be, and then play around with the vertices texture coordinates (with the texture addressing mode set to wrap) in order to automatically take care of both texture repetition and texture scrolling.
- For repetition instead of setting your vertical texture coordinate from [0 to 1], set it from [0 to N] where N is the number of times you'd like the texture to repeat. Adjust this value depending on how tall your quad is in comparison to your texture height.
- For scrolling I'd simply scroll the vertical texture coordinate, so that instead of ranging from [0 to N] it would range from [inc to N+inc] with the value of inc being incremented or decrement each frame. From time to time I'd wrap inc back to the origin in order to prevent overflow/underflow.
EDIT I just tried implementing this exactly as I described (but in XNA) and it worked quite well. See this video of the demo. Source code here for those interested.
For instance, with N equal to 3 you would get something like the image below (I've painted the middle section in red so that you can see where the repetition occurs). Then, simply changing the value of inc would make the road scroll in one direction or the other, depending on whether you incremented or decremented it.
