What may be easy is to include tweens based on the passage of time. You could tween the X-Y coordinates of the tiled texture. This way, you wouldn't have to rotate the entire 3d object, but just alter the Y value of the texture:
Matrix uvmat = Matrix.Identity;
uvmat.Translate(0,slide,0);
dev.Transform.Texture0 = uvmat;
dev.TextureState[0].TextureTransform =
TextureTransform.Count2;
dev.SamplerState[0].AddressU = TextureAddress.Wrap;
dev.SamplerState[0].AddressV = TextureAddress.Wrap;
This would allow UnleashX type animation (normals on a sphere pointed inwards, sphere encloses viewport, texture spinning).
What fun! I'm envious that you get to write this code! Fun, fun, fun!