I would recommend the following settings:
1) compile jboss with optimize turned on and debug turned off
2) Use cache-invalidation configuration (container name is "Standard CMP 2.x EntityBean with cache invalidation") for CMP EB that may change
3) Mark you RO Beans as read-only (xdoclet class-level)
4) Change to org.jboss.ejb.plugins.lock.JDBCOptimisticLock and modified-strategy. How this will effect the performance of your app, you can see for yourself: Comment out EntityLockMonitor and BeanCacheMonitor in conf/jboss-service.xml. Then during some load tests you will notice how your beans suffer from heavy-locking. This will disappear when using optimistic locking for your most needed EB. Also try /web-console. For each Bean there are statistics about invocation time (quite useful for detecting bottlenecks ;-)).
5) In Tomcat comment in the ajp13 connector as it is not needed in your case
6) To change the database from Hypersonic to Oracle, declare a Oracle DB with DefaultDS and remove the one based on hypersonic. In jms/hypersonic-jdbc2-service.xml modify the settings for the PersistenceManager to match those for Oracle.
7) Remove some services that are not needed (i.e. snmp.sar)
8) Use a page-by-page display using JBossQL OFFSET/LIMIT syntax, calculating the number using a ejbSelect with COUNT.
9) Use another vm (i.e. JRockit) and give her a lot of RAM.
There could be more to think off. That's what's coming to my mind right now ...
BTW: JBoss 3.2.2 has quite some improvements regarding CMP speed. Give it a try (at least for development)