Intel's solution is software, but they do it before-hand on their servers. So the Atom is getting a genuine x86 binary, pre-translated by the Intel cloud with much time to optimize it.
They detailed it in an article on Anandtech, IIRC.
One-time redirect when you download the app.
Ok I just dug up the AT article and there's an update:
"Update: Intel has clarified and informed us there is no cloud aspect to binary translation, it is 100% done on the device for ARM NDK applications."
So it looks like you download an app, it's translated to x86 on the device, and then when you go to run it it's already a native x86 app so there's no dynamic binary translation.
Interesting. I wonder how efficient the binaries really are.