I think it boils down to two differences in approach: 1) Linus was more radically open about including others in development of the kernel, and 2) Linus was more focused on "working" than "right" in kernel design. These happened to combine beautifully, as a working kernel meant people using the system and wanting to make it better.
Linus also benefited tremendously from having the GNU toolchain and userspace already available.