This is pretty simple, thanks to PHP's file() function, which reads a file into an array, with one line to an element. Once you have the rows in an array, you can use explode() to split each row into your fields:
$filearray = file("thefile.txt");
for($i = 0; $i < count($filearray); $i++) {
$filearray[$i] = explode(trim("\t",$filearray[$i]));
}
This could probably be done with each(), but I'm not comfortable with each() yet, so you get a for() loop. Thus, you have a multidimensional array full of all these values (the trim() removes the line breaks at the end). In your example, $filearray[0][0] would equal "TITLE", $filearray[0][1] would equal "data1", and so on, $filearray[1][0] would equal "TITLE 2", etc.
Putting this into a table, then, is pretty trivial -- use foreach() like so:
print("<table>\n");
foreach($filearray as $row) {
print("<tr>");
foreach($row as $value) {
print("<td>$value</td>");
}
print("</tr>\n");
}
print("</table>\n);