1) No, it's not possible unless you want to somehow process the image in multiple, smaller pieces. I don't remember seeing a device with bigger GL_MAX_TEXTURE_SIZE than that, so you won't be able to create a FBO bigger than that.
EDIT: Actually, there is quite a number of devices where the maximum texture size is 2048, although 4096 is typical in most recent devices.
2) You should understand that that is already a very large texture, not a small one, so glReadPixels() will be slow. I'm not sure there's a way around this on Android.