Mi sà che mi sono confuso anche io: ero convinto che la tua classe usasse mysql, invece usi -a ragione- mysqli.
Allora.. il fetch_assoc non è un metodo della classe mysqli, ma di 
mysqli_result.
A tornare mysqli_result è il metodo query ( $this->con->query() ), di conseguenza esso viene archiviato in $result, quindi è lui che ha il metodo fetch_assoc().
Inoltre, il numero di righe estratte con la query di selezione è memorizzato nella proprietà num_rows che si ritrova sempre su $result.
Di conseguenza è così che dovresti svolgere la query:
	
	
	
		PHP:
	
	
		    #> Realizzazione Query
    $sql = "SELECT * FROM mailbox WHERE destinat LIKE '$username' ORDER BY data";
        $result = $this->con->query($sql); 
        $count = $result->num_rows;   
    #> Controllo Errori
   if ($count > 0){
      
       #> Formatto una tabella html
    echo '<table>';
    #> Recupero Informazioni
    while ($row = $result->fetch_assoc()) {
    
        #> Formatto una nuova riga nella tabella
        echo '<tr>';
        
        echo '<td>', $row['sender'], '</td>';
        echo '<td>', $row['content'], '</td>';
         echo '<td>', $row['data'], '</td>';
        echo '</tr>';
    }
    #> Chiudo la formattazione della tabella
    echo '</table>';
    #> Libero le risorse impiegate dalla query
     $result->free();  
    } 
   else   die('Errore Mysql: '. $this->con->error());
   }
	 
 
Il metodo per liberare le risorse della classe mysqli_result, contenuto in $result, è 
free() e non close().