Erm.
The IBM PC, PC/XT has an 8088 (or clones with 8086's) that has a 20 bit address bus. It's still a megabyte, no matter what.
It doesn't matter where you put the BIOS - beginning or end. It's still a megabyte.
The BIOS is up the end there because the 8088 reset jump vectors are at the end of RAM, not the beginning (like the Z80, etc.) So you need to have something at that memory range for the CPU to start executing.
The 8086/8088 software interrupt vectors are at the beginning of your address space. So, there needs to be RAM there. The interrupt handler, NMI handler and all the software vectors can't be in ROM - well, they can be, but then they'd have to jump to RAM at some point to do anything flexible.
So, you:
* need RAM in the first 4k for jump tables and such (0x00000000 -> 0x00001000)
* need ROM at the end for the reset/power-on vectors .. so, the IBM PC memory map makes sense.
The IBM PC architecture also assumed people would build ROM add-on applications, like BASIC (which they did) but also word processors, spell checkers, etc. That's why there's 8 ROM slots on the PC and PC/XT. But people soon adopted disk applications rather than ROM applications.
So, I don't buy that "it's Gates' fault." The only things I can see he could've done differently are:
* advocate a 68000 CPU - but then he'd have issues at 16MB - and Amiga/MacOS had exactly that
* add more RAM and less peripheral address space - but you're still capped at 1MB
* advocate for an EMS (page-flipping) architecture early on, and encourage people to make use of it.