Capture a partial screenshot in the BGE
One solution is to uses plain Python to write out the PNG file.

Another solution is to extend render.makescreenshot(filename) to accept additional optional argument in the form of render.makescreenshot(filename, x, y, width, height)
The work-in-progress patch is here:
http://www.pasteall.org/47215/diff

Note: The patch currently does not work correctly in Blender, it only works in BlenderPlayer.