Which has been possible in non UNIX systems since the mid 90's, this has nothing to do with micro-kernel architecture.
IMO, loading the drivers at runtime is the easiest part of microkernels. It is really very very very tiny step. There are a lot more things to do, like doing IPC between operating system components, managing memory, scheduling, protection of the system & driver process running in the user space.
Finally, loadable kernel modules does not give you any security and reliability. Those modules still share the same address space with the kernel and each other.