$modulosdisp es un string y no un array, con lo cual estás machacando siempre el valor que tiene $modulosdisp con el último valor de $row1['modulo'] por eso solo te quedas con el último.
Código PHP:
$modulosdisp = array();
$itemdeterminado= $nombre[0];
$query6 = "Select Modulo FROM historial where Item like '%".$itemdeterminado."%'";
$resul6 = mysql_query($query6) or die(mysql_error());
while($row1 = mysql_fetch_array($resul6)){
array_push($modulosdisp, $row1["Modulo"]);
}
if (empty($modulosdisp)) {
$modulosdisp=0;
echo $modulosdisp;
}else{
foreach($modulosdisp as $key=>$value){
echo $key.': '.$value;
}
}