There is no way to assign for a specific aggregate. An exception With syncmirror where there is pool0 and pool1 so that spares are used keeping the spare for drives in the same pool where they are resilient across shelves. Sync mirror created plexes on different shelves in different stacks. I guess you could use pools like this without sync mirror to differentiate a spare between two pools of aggregates.
The own of filer is my datacenter supplier and it has installed four aggregate and only one aggregate is of my company, and there are two spare disks of my purchased shelve so others aggregates are indirectly using my spares disks.