How do I find out who is the resource hog in SQL Server 2008?
One way to do this would be through Resource Governor.  You can set up the appropriate Resource Pools and Workload Groups for each vendor/database.  Then you would create a classifier function (basically just a UDF that's registered in Resource Governor as the classifier function) to determine which Workload Group the incoming request would belong to.

To make this easy you could create Windows Groups (one for each vendor/db) and base your classifier function off of this, and set the appropriate workload.  These workloads can be configured according to your specifications above.