x86 is the type of architecture your computer is based on. The x86 ISA is owned by Intel and licensed to AMD, and at time to nvidia/via/sis etc to make chipsets.
x86 is 32bit, hence Program Files (x86) is for 32bit apps.
x86-64 is x86 with 64bit extensions.
x86-64 was created by AMD when they created the K8 Athlon 64. Intel would rather do anything at all than accept changes to their ISA by a third party, but AMD actually pulled off the impossible.
Intel tried to prevent 64bit adoption since they didn't have a solution at the time. Later they countered with their own 'EMT64' (Extended Memory Technology) in later P4 revisions, but it was functionally identical to x86-64, indeed had to be because AMD had gained such a vast amount of traction in the intervening time.
Even on new Intel CPUs you will see them labelled as supporting 'EMT64' rather than 'x86-64', because they use their own copy rather than license x86-64 from AMD, but since all 64bit x86 software uses x86-64 they're forced to work in exactly the same way. Score AMD!
Intel's name is interesting, reflecting the fact that the technology is inherently tied to increased memory support and nothing else... which most people fail to realise as they think it magically doubles CPU speed or some such rubbish.
I rather suspect that Microsoft's decision to label the 32bit folder x86 instead of leaving it as program files and calling the 64 bit folder 'program files x86-64' was to avoid annoying Intel