Hola.
Una posible solución sería usar la interfaz iterable y el método Iterator.Puedes ver más información sobre esto en la entrega CU00915C de Curso Lenguaje de programación Java nivel avanzado I en ésta misma página.
Una forma de llegar al resultado que planteabas sería:
import java.util.Iterator;
public class Programa1 {
    public static void main(String arg[]) {
       
        Numeros p1 = new Numeros(1045,2090,3135,4180,5225);
        Numeros p2 = new Numeros(1140,2280,3420,4560,5700);
        Numeros p3 = new Numeros(1235,2470,3705,4940,6175);
        Numeros p4 = new Numeros(1330,2660,3990,5320,6650);
        Numeros p5 = new Numeros(1425,2850,4275,5700,7125);
        Numeros[] pp = {p1,p2,p3,p4,p5};
        ConjuntoNumeros cp = new ConjuntoNumeros(pp);
        Iterator<Numeros> it1 = cp.iterator();
        System.out.println("          5"+"      10"+"      15"+"      20"+"      25"+"\n");
        
        while (it1.hasNext()){for (int i=11;i<16;i++){
            Numeros tmp = it1.next();
            
            System.out.println(i+"      "+tmp.num1+"    "+tmp.num2+"    "+tmp.num3+"    "+tmp.num4+"    "+tmp.num5);
        }
        }
    } 
}import java.util.Iterator;
public class ConjuntoNumeros implements Iterable<Numeros>{
    public Numeros[] conjuntoNumeros; // Atributo de la clase
    public ConjuntoNumeros (Numeros [] p) { // Constructor de la clase
        conjuntoNumeros = p;  
    }
    public Iterator<Numeros> iterator() {    Iterator it = new MiIteratorNumeros(conjuntoNumeros);
        return it;         }
}public class Numeros{       
    public int num1,num2,num3,num4,num5;
   
    public Numeros ( int num1,int num2, int num3,int num4,int num5) {
        this.num1 = num1;  this.num2 =num2; 
        this.num3 = num3;  this.num4 =num4;
        this.num5 = num5;  
    }
}import java.util.Iterator;
public class MiIteratorNumeros implements Iterator<Numeros>   {
        public int posicionarray;
        Numeros[] conjuntoNumeros;
        public MiIteratorNumeros(Numeros[] conjuntoNumeros)   {
            this.conjuntoNumeros=conjuntoNumeros;
            posicionarray = 0; }
        public boolean hasNext() {
            boolean result;
            if (posicionarray < conjuntoNumeros.length) { result = true; }
            else { result = false; }
            return result;
        }
        public Numeros next() {
            posicionarray++;
            return conjuntoNumeros[posicionarray-1];
        }
        public void remove(){
            throw new UnsupportedOperationException("No soportado.");
        }
    }
Espero te sea de utilidad.
Un saludo