There is nothing on the server side that will spread sessions evenly across nodes of the cluster. However, clients can use a load-balancing policy to facilitate the behavior you're looking for. See this bit of documentation.
If you detect clumped connections it's probably best to use the HornetQServerControl to close the connections of a particular client (e.g. use the "closeConnectionsForAddress" operation) which would ideally trigger the clients to reconnect (using an appropriate load-balancing policy).