Not as long as people insist on using archaic programming languages such as C.
Programs are distributed 32 bit, and often rely on 3rd party add ons that are 32 bit. And never the two shall be combined into a single process, even if the actual memory requirements are small. That is why Office is normally run in 32 bit mode -- the add ins.
A better idea would have been to allow 32 bit windows to run with more than 4 gig of ram, and 4 gig per process rather than 2. That would have pushed off the 64bit day quite a bit.
This is not a problem with .Net (or Java) of course. They Jit compile, optimized to the specific machine. No 64bit issues, no opaque type issues. And Java can even reference 32 gig of memory with 32bit pointers (by enforcing alignment) which almost halves the amount of memory a 64bit application needs.
The problem is not Microsoft. The problem is C. But given C, to kill 32bit would have been to kill Windows. (And even Linux allows 32 bit programs on 64bit O/S.)
As to WoW64, that was entirely gratuatous, as per my other post above. And given COM it should also have been possible to run 64bit programs in 32bit processors, albeit restricted to 4 gig. (There had to be something potentially good about COM.) But that is not how it is.