y ya que andas por ahi tambien corrigele un poco el html
DBMS_OUTPUT.put_line ('<font face="Curier New" size="10"><p></p>');
DBMS_OUTPUT.put_line ('<font face="Curier New" size="10"><p></p>');
parece que eso sirve para darle un espacio, igual con <br/> queda, si no al menos cierra la etiqueta "font" com </font>
DBMS_OUTPUT.put_line
( '<font face="Curier New" size="4"><div align = "center"><b><span class="style1">'
|| i.NOMBRE
|| ' '
|| '</span></b></div></td>'
);
si estas usando la clase "style1" el <b> sobra, ponlo en la clase con "font-weight:bold;" el div para el centrado con "text-align:center;" y el font con "font-family:"Courier New"" y "font-size:4px;"
('<style type="text/css">.style1 {color: #400040; font-family: "Times New Roman", Times, serif;}</style>'
);
sacalo del loop estarias declarando cada iteracion
ya por ultimo checate las etiquetas head, body, y html para que se vea correctamente