it is always a good idea to pool destination resources and connections.
Note that there was a recent fix (AMQ-2349) to the PooledConnection to ensure that it cleans up temp destinations on a call to close, before it is returned to the pool.
So you need to keep the connection used to create temp destinations open.
On the creation performance, one option that will help is if you disable the use of the temp advisory on a connection. This feature saves a round trip to the broker when an attempt to use a deleted temp should be flagged as an error, but it will not effect normal operation. Use the connection url parameter jms.watchTopicAdvisories=false or set the attribute on your ActiveMQConnectionFactory