Rieccomi, ho letto l'articolo di Dan il quale mi ha fatto venire un'idea.
Utilizzando la funzione getNumLines e adattandola alle mie esigienze ho fatto in modo che le multicell di un documento pdf generato dall'estrazione di dati da Mysql adattasse l'altezza della cella a quella con maggior numero di righe di un record di una determinata riga.
Di seguito il codice commentato.

codice:
// qui le varie impostazioni del pdf
$pdf = new PDF('L', 'mm', 'A4', true, 'UTF-8', false);
$pdf->SetMargins(5, 50, 5);
$pdf->SetAutoPageBreak(true, 8);
$pdf->AddPage();


//  connessione al db 
$conn_db = mysqli_connect($host, $username, $password, $database);

mysqli_set_charset($conn_db, "utf8");

$result=mysqli_query($conn_db, "SELECT * FROM .....

$posizione_y=50;    // posizione di start della prima multicell da stampare

while($row = mysqli_fetch_array($result)) {    //eseguo il ciclo while per estrarre i dati interessati dal db

$id=$row['Id'];
$data=$row['Data'];
$ora=$row['Ora'];
$descrizione=$row['Descrizione'];
$ricambi=$row['Ricambi'];
$note=$row['Note'];



$h_cell_des = $pdf->getNumLines($descrizione, 90)*4;      // recupero valore altezza cella descrizione
$h_cell_ricambi = $pdf->getNumLines($ricambi, 90)*4;      // recupero valore altezza cella ricambi
$h_cell_note = $pdf->getNumLines($note, 90)*4;                // recupero valore altezza cella note
// il 90 è la larghezza impostata della multicell
// il 4 è un numero che varia in base alla dimensione del carattere


$array = array($h_cell_des, $h_cell_ricambi, $h_cell_note);     // inserisco le 3  o più variabili in un array

rsort($array);     // ordino l'array dal maggiore al minore

$h_cell= $array[0];   // recupero il valore di quello maggiore


if($h_cell<7)$h_cell=7;    //   nel caso il valore fosse inferiore a (7 in questo caso) forzo l'altezza a 7

// dalla posizione y attuale sommo all'altezza della multicell successiva (nel caso ci fosse). Se il valore è uguale o superiore  al punto massimo dell'ultima multicell che voglio stampare sulla pagina (y=200), ripristino al valore iniziale di y e aggiungo una nuova pagina.
if ($posizione_y+$h_cell>=200){    
$posizione_y=50;
$pdf->AddPage();
}

//  queste righe non hanno bisogno di commenti (notare solo $h_cell) come impostazione altezza multicell
$pdf->SetTextColor(0,0,0);	
$pdf->SetFont('helvetica','',8);
$pdf->SetFillColor(255,255,255);
$pdf->MultiCell(10,$h_cell,$id, 1,'C', true, 0, '', '', true, 0, false, false, 0, 'M', true);
$pdf->MultiCell(20,$h_cell,$data_it, 1, 'C', true, 0, '', '', true, 0, false, false, 0, 'M', true);
$pdf->MultiCell(90,$H_cell,$descrizione, 1,'L', true, 0, '', '', true, 0, false, false, 0, 'M', true);
$pdf->MultiCell(90,$H_cell,$ricambi, 1,'L', true, 0, '', '', true, 0, false, false, 0, 'M', true);
$pdf->MultiCell(90,$H_cell,$note, 1, 'L', true, 1, '', '', true, 0, false, false, 0, 'M', true);

$posizione_y=$posizione_y+$h_cell;   //  ricalcolo il valore di posizione_y e aggiungo il valore dell'altezza della multicell stampata
}


.....ecc.
Con questo sistema tutta la riga stampata ha l'altezza della cella che occupa più spazio in altezza e in più nel caso di più pagine, il salto pagina avviene non appena una cella non riesce a stare dentro la misura impostata della pagina. Si noterà infatti che l'ultima cella stampata su ogni pagina potrà avere una distanza diversa dal bordo inferiore.

Spero che il codice sia comprensibile.
Ciao
Federico