The argument that Windows is a larger target, therefore has more people trying to crack it, and that if Linux had as many people trying to crack it then it would be as full as holes as Windows is missing the point.
Windows has more vulnerabilities that crackers are actively explointing right now than Linux.
Windows is designed in such a way that many portions of the OS interact with each other. This has two major consequences for patching: the patch is more complex to produce, and it must be tested more extensively to ensure it doesn't break other things. And even then, patches produced by Microsoft have broken other things in the past.
Windows is designed in such a way that producing patches for vulnerabilities takes longer and is more likely to break other portions of the OS when applied.
Windows has evolved from an OS that took a very simplistic view (if you're arguing that it took any view at all) of security. It was designed as a single-user OS with no networking. Security has had to be "bolted-on" retrospectively. Unix (from which Linux derives some of its main design features) was designed from the start as a multi-user OS, and had a security framework in place to protect users from each other. With this framework it was easy to implement other, more advanced security features.
As to Open v Closed Source:
I personally believe that Open Source, in general is more likely to produce code that is free from buffer over-run vulnerabilities, and other basic coding errors that lead exploits for programs and OSes. I think this because when the whole world can see what you're producing, you tend to be a lot more careful - any flaws in the code reflect poorly on you personally.
That's at the low level though. The real problems lie in the system design, as that is where the true exploits occur. It doesn't matter if your front door lock is manufactured to the highest quality if someone can break into your house through a skylight (okay, poor analogy, but hopefully you're following me).
At this level, I don't really know what difference Open vs Closed makes. I think it comes down more to if the design of the system is guided through by a group of people that totally understand the problem, the environment and the entirety of the system. That isn't something Open Source can help with as much. That's project management.
Overall, I think that it's not that Open Source is a better model for producing software, I believe it's more because Open Source allows the bad programs to be recognised as such, and for the projects to die. It's a bit like the concept of Natural Selection: a well written project that fulfills a specific need will gain interest and popularity at the expense f projects that either aren't well written/designed or that exist for little to no purpose. And also, when a project reaches a point where the problem doesn't exist or has changed, the project must either adapt to the changed nature of the problem, or it will lose interest and popularity, until it dwindles to perhaps a lone programmer tinkering away at it. Meanwhile other projects will have taken the resources (Open source developers) freed up by the 'death' of the other project.
With Closed source it doesn't matter so much if the product is any good or if it is really needed/wanted. Inevitably, since it is a commercial venture, it will come down to marketing. Success in these terms is defined by how many units you can ship, and that is directly affected by marketing - Microsoft is a great example of this.
Hopefully there's some meat in this post for both sides of the debate to chew over. I'm not an extreme on either side of the Open v Closed source issue. I truly believe there is a market for both models. However, I am quite passionate about open STANDARDS. I also subscribe to the notion of FREE software in the true sense of the phrase: FREE as in FREEdom, not zero price.