No, it doesn't have to be done on a single thread. If it does it's because that's how the program devs have created the game. This is from microsoft's site.
"Multithreading is designed to improve performance by performing work using one or more threads at the same time. In the past, this has often been done by generating a single main thread for rendering and one or more threads for doing preparation work such as object creation, loading, processing, and so on. However, with the built in synchronization in Direct3D 11, the goal behind multithreading is to utilize every CPU and GPU cycle without making a processor wait for another processor (particularly not making the GPU wait because it directly impacts frame rate). By doing so, you can generate the most amount of work while maintaining the best frame rate. The concept of a single frame for rendering is no longer as necessary since the API implements synchronization."
https://msdn.microsoft.com/en-us/library/windows/desktop/ff476891(v=vs.85).aspx
Dx11 does have multithreaded support, but if game devs choose not to implement it for whatever reason (convenience, complexity etc) then it makes little difference. Dx12 won't change in this aspect, which is why I mentioned that dx12 won't suddenly create a bunch of heavily threaded games. Much like vram stacking, only IF the devs decided to take advantage of it. We can offer the game devs all the tools in the world to make multithreaded games but getting them to do so is another matter.
It's not to say dx12 won't have better or more elegant multithreading support, obviously it's an improvement over dx11. The issue of games being heavily single threaded can't be blamed on dx11 though.