No son realmente comparables.
Apache Tomcat no es un servidor J2EE. Es simplemente un contenedor Servlet para aplicaciones web. Nada mas. Si necesita implementaciones de la API J2EE, debe tomarlas de otros lugares. Por ejemplo, usando el Servidor Apache Geronimo que usa Tomcat como su contenedor, o tomando los archivos JAR de Glassfish.
Glassfish es un servidor de aplicaciones Java completo con implementación para API como JPA, EJB y más. Glassfish contiene un motor Servlet utilizado inicialmente por Tomcat, pero lo mejoraron (no sé qué exactamente). Los servidores de glassfish más recientes usan otro contenedor usando grizzly
que usa la API de NIO para entrada/salida y escala bastante bien. Hasta donde yo sé, Glassfish Servlet Engine es más eficiente. Aquí he encontrado un buen punto de referencia (que es un poco viejo, aunque):
http://weblogs.java.net/blog/sdo/archive/2007/05/how_to_test_con.html
Su "comparación actual" también es ahora obsoleto. [Nueva página.] (Http://wikis.sun.com/display/glassfish/GlassFishVsTomcat) [Aún más reciente] (http://www.oracle.com/us/products/middleware/application-server/glassfish- for-tomcat-users-wp-073699.pdf) (advertencia, enlace PDF). –