Sí se puede hacer, pero no directamente.
Una opción es crear un DefaultTableModel y ahí meter las dos columnas y con los métodos setValueAt() ir copiando los datos del ArrayList. Así, por supuesto, no estás usando el ArrayList salvo para copiar.
Otra opción mejor pero más trabajosa es hacer una clase que tenga dentro el ArrayList y que implemente TableModel. Define los métodos de esta interface de forma que hagan la consulta al ArrayList. Por ejemplo, el metodo getColumnCount() debe devolver 2, el getRowCount() tantas filas como elementos tenga el ArrayList, el getValueAt(fila,columna) debe devolver según la fila y la columna bien el nombre o la edad de una persona concreta, etc, etc.
Luego puedes meter esta clase directamente en el constructor del JTable.
Aquí tienes un ejemplo de
cómo implementar tu propio TableModel.
Se bueno.