When we publish a page or asset, Can we control to which Replication Agent the Publish request goes (given that we have multiple agents and we want the request to go only to one particular agent) ?
No, from an authoring UI you cannot control this. Because this is an operational aspect and in 99.9% of all cases authors are not aware of how many publishs you have (they should never need to know that).
From an API point of you can do that of course.
To show an example of what Joerg stated - see this that shows this via an API - Adobe Experience Manager Help | Replicating Adobe Experience Manager Content using the Replication A...
This may not be exactly what you are looking for but you can limit the access of content to be published through "Agent User Id".
Check these posts: