Yes, you can do this. The fastest way to success here is to implement it as part of the NEGOTIATOR_POST_JOB_RANK _expression_ in your pool. See:
http://www.cs.wisc.edu/condor/manual/v7.4/3_3Configuration.html#20551
The UWCS example from that link about (which, BTW Condor Team, is still using VirtualMachineID...) is:
NEGOTIATOR_POST_JOB_RANK = (RemoteOwner =?= Undefined) * (KFlops - SlotID)
Does exactly what you're asking for, except it tries to spread jobs out across machines when you've got multiple machines with free slots available to your jobs. Rather than filling up one machine and then filling up the next machine.
- Ian