The answer to this question could be very long regarding the scope of the argument, I think first of all it could be better to focus what are the choiches and the reasons that made necessary to separate items in multiple assemblies, and in general this could be in general Design and Layering and/or taking project structure clean.
1. What are the advantages of separating Solutions/DLL?
The advantage of separating solutions and assemblies in general is related to a Design Approach, a code reuse and layers organization, as said, separating solutions helps to share objects/components and to distribute the responsability between layers, promote multi target and pluggable solutions (see for example various storage target assemblies (Database, Files, etc)), testability
2. What are the disadvantages of separating Solutions/DLL?
The major disadvantages, as others said before me, are, first of all complexity (management, maintenance), then performance (but this is another discussion, it's not easy as saying that)
3. If I create a new solution/DLL for every shareable resource isn't going to be lots of solutions?
It depends, first of all I think this could depend on design choiches
4. After too many solutions (like 40+) is this going to have some bad effects of IDE performance (VS.NET 2008)?
I'm not so sure about performance degradation in VS2008 IDE, but sure it could affect performance to manage a single solution of 60+ projects than for instance 4 solutions with 20 projects each..
It must be clear that VS IDE performance could be degraded even after opening for instance 35 files together just from a single or double project solution..
At the end I think the BIG thng to take i mind is that it's better to "build" just what it's really needed than fall in an over-design for instance, so when things became too complex to manage (to many projects) it's better to stop and think "everything's going well?"