I can think of three ways to achieve the goal, off the top of my head, no code written:
1. manually construct a texture using the rendered text textures generated by pyglet as the alpha channel in a texture with the gradient in the colour components. Hard.
2. use a fragment shader to combine two textures - the text render and a gradient texture. Easier.
3. use a fragment shader to generate the gradient colour to render on the fly when rendering the text texture, modulated by the colour from the text texture. Easiest.
Richard