From what I know, everyone seems to post-process this by rendering the scene 5 or 6 times on different faces of a cube, and then render the resulting cube through a fisheye lens algorithm on the screen.
However, if the framebuffer was expanded to the corresponding dimensions of the area of a FOV expanded from an area with a 90° FOV, it would be possible to apply a fisheye lens effect through compressing the expanded framebuffer to the dimensions of the 90° FOV area. This way, the scene would only have to be rendered once, and the fisheye lens algorithm could probably also replace the screen compression algorithm used in the underwater screen warp effect, making the resulting effect much, much faster.
It would also be possible to do a lower-quality faster approach by kind of inverting the area calculations; calculating the smaller area that corresponds to the limits of a 90° FOV inside a bigger FOV with the regular dimensions of the framebuffer, and applying a fisheye lens algorithm that would expand the smaller area up to the dimensions of the framebuffer.
The only limitation of an approach like this is that the effect would be limited to FOV values below 180°.
[edit] Hmm, actually, judging from the 90° and 170° flat FOV screenshots from the website, a fisheye lens effect through the way I've suggested would need an expanded framebuffer with about 1100% of the size of the regular framebuffer. Such an expanded resolution would be much slower to render than a cubemap.