QEMU with KVM with differing host/guest architectures
The naive way to run a virtual machine is to interpret each instruction. The VM software decodes each instruction and runs it.
When the instruction set of the virtual machine is the same as the host, an alternative method is to simply execute the instructions. Only a few instructions can't be executed directly because the guest doesn't have full control over the hardware. A sticky point is memory accesses: the guest doesn't have access to the whole memory, so a translation needs to be performed on the addresses. High-end CPUs such as x86 CPUs with the VT-x (Intel) or AMD-V (AMD) extension, or ARM Cortex-A15 and above (including the Pi 2 and the Pi 3), have hardware features to perform this address translation. KVM is a component of the Linux kernel that takes advantage of these instructions to allow a code in a virtual machine to be executed directly by the native processor.
This doesn't help you, because you aren't trying to execute ARM code on an ARM CPU, or x86 on an x86 CPU. You want to execute x86 code on an ARM CPU. For this, software to decode and interpret the instructions is necessary. KVM doesn't help here.