отрендерить все текстуру в одну.
создать RenderTarget2D, установить его на график девайс в качесте текущего таргета и отрисовать текстуры в нужных координатах и вуаля, у тебя ьбудет текстура - тот самый рендер таргет.
Вот пример на XNA 4.0
public Texture2D RenderInOneTexture(Texture2D[] textures)
{
//расчитаем еужный размер конечной текстуры
int allSize = 0;
int maxW = 0;
for (int i = 0; i < textures.Length; i++)
{
allSize += textures[i].Height;
if(textures[i].Width>maxW)
{
maxW = textures[i].Width;
}
}
//создаём текстуру, куда будем рендерить( в XNA 3.1-3.0 нужно будет вернуть
//у таргета имеено текстуру, так как в XNA 4 сделали RenderTarget наследником Texture2D)
RenderTarget2D resultTexture=new RenderTarget2D(GraphicsDevice,maxW,allSize);
GraphicsDevice.SetRenderTarget(resultTexture);
spriteBatch.Begin(SpriteSortMode.Immediate,BlendState.AlphaBlend);
allSize = 0;
for (int i = 0; i < textures.Length; i++)
{
spriteBatch.Draw(textures[i],new Vector2(0,allSize),Color.White);
allSize += textures[i].Height;
}
spriteBatch.End();
GraphicsDevice.SetRenderTarget(null);
return resultTexture;
}