Como dicen: "El que persevera alcanza", el error estaba en la asignación del tamaño del array:
Código:
SetLength(lbs,fSa3700.DBGridArancel.Columns.Count-1);
SetLength(fld,fSa3700.DBGridArancel.Columns.Count-1);
Sobra el -1 ya que se nececitan "Count" elementos, la declaración correcta es:
Código:
SetLength(lbs,fSa3700.DBGridArancel.Columns.Count);
SetLength(fld,fSa3700.DBGridArancel.Columns.Count);
Adicionalmente encontre otros errores (menores), el valor de Width podia ser negativo (0-sep) = 0-5 = -5 y el evento AfterPrint y AfterPreview deben asignarse al procedimiento ReporteAfterPrint.
Con estas correciones se logra imprimir el DBGrid con una ancho de columnas proporcional al de pantalla.
Gracias a todos por su ayuda.