Das dürfte ähnlich zu [diesem Problem][1] sein. Auch wenn ich den genauen Grund für das Verhalten nicht kenne, lässt es sich auch hier verhindern, wenn man sich vor dem `\selectlanguage` schon im horizontalen Modus befindet. Das kann man durch ein vorangestelltes `\leavevmode` oder `\hspace{0pt}` oder `\mbox{}` erreichen. Zusätzlich muss man darauf achten, dass kein ungewünschtes Leerzeichen eingefügt wird.
\documentclass{article}
\usepackage[english,ngerman]{babel}
\begin{document}
\begin{tabular}{|p{5cm}|p{5cm}|}
\hline
\mbox{}\selectlanguage{english}This is English text.
This is English text. This is English text. \today &
Dies ist deutscher Text. Dies ist deutscher Text.
Dies ist deutscher Text. \today \\
\hline
\end{tabular}
\end{document}
![alt text][2]
----------
**Update**
@Clemens hat in seinem Kommentar einen weiteren Lösungsvorschlag gemacht. Man kann auch den Befehl `\foreignlanguage{english}{...}` für die andere Sprache verwenden. Allerdings werden dabei Datumskonventionen und sprachspezifische Texte *nicht* geändert. Wegen des Datums ist dann in diesem Beispiel noch ein `\selectlanguage{english}` im Argument nötig. Wäre in dem Beispiel keine Datumsangabe enthalten, würde ich diese Variante bevorzugen.
\documentclass{article}
\usepackage[english,ngerman]{babel}
\begin{document}
\begin{tabular}{|p{5cm}|p{5cm}|}
\hline
\foreignlanguage{english}{This is English text.
This is English text. This is English text. \selectlanguage{english}\today} &
Dies ist deutscher Text. Dies ist deutscher Text.
Dies ist deutscher Text. \today \\
\hline
\end{tabular}
\end{document}
[1]: http://texwelt.de/wissen/fragen/11610/tabular-tabelle-mit-beamer-class-overlay/11612
[2]: http://texwelt.de/wissen/upfiles/tw_tabspr.png