Hola,
 
No estoy seguro si existen métodos dentro de JasperReports para manipular la estructura del reporte, pero dependiendo de la complejidad de tu aplicación podrías crear o modificar el archivo .jrxml con código, con alguna librería de XML como xerces o algo parecido. 
Los reportes de IReport son almacenados en XML, puedes crear el documento XML externamente y transferirlo al compilador Jasper para validar el reporte. Puedes crear un documento en IReports y ver el resultado del archivo .jxrml almacenado en el disco con un editor de textos. 
Tendrías que probar mucho para ver todas las opciones, realmente estarías haciendo un programa parecido a IReport así que podrías revisar el código de IReport para ver si existe una funcionalidad mas simple de realizarlo. 
Por ejemplo, el encabezado y el header de un archivo .jxrml creado con IReport:    
Código XML:
Ver original- <?xml version="1.0" encoding="UTF-8"  ?> 
- <!-- Created with iReport - A designer for JasperReports --> 
- <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> 
- <jasperReport 
-          name="jaspReport01" 
-          columnCount="1" 
-          printOrder="Vertical" 
-          orientation="Portrait" 
-          pageWidth="612" 
-          pageHeight="792" 
-          columnWidth="552" 
-          columnSpacing="0" 
-          leftMargin="30" 
-          rightMargin="30" 
-          topMargin="20" 
-          bottomMargin="20" 
-          whenNoDataType="NoPages" 
-          isTitleNewPage="false" 
-          isSummaryNewPage="false"> 
-     <property name="ireport.scriptlethandling" value="0" /> 
-     <property name="ireport.encoding" value="UTF-8" /> 
-     <import value="java.util.*" /> 
-     <import value="net.sf.jasperreports.engine.*" /> 
-     <import value="net.sf.jasperreports.engine.data.*" /> 
-   
- .... 
-         <pageHeader> 
-             <band height="50"  isSplitAllowed="true" > 
-                 <staticText> 
-                     <reportElement 
-                         x="0" 
-                         y="6" 
-                         width="552" 
-                         height="23" 
-                         key="staticText-4"/> 
-                     <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/> 
-                     <textElement textAlignment="Center"> 
-                         <font size="18"/> 
-                     </textElement> 
-                 <text><![CDATA[MI REPORTE S. A.]]></text> 
- ... 
Saludos,