You can use \raggedright
:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage{array}
\begin{document}
\begin{tabular}{|p{2cm}|p{2cm}|}
First longerword & First longerword \\
Second Thing & Second Thing \\
\end{tabular}
\vspace{\baselineskip}
\begin{tabular}{|>{\raggedright}p{2cm}|>{\raggedright\arraybackslash}p{2cm}|}
First longerword & First longerword \\
Second Thing & Second Thing \\
\end{tabular}
\end{document}
The second tabular
will include a \raggedright
in each cell of the p
column, which will avoid the hyphenation.
Note that you need to load the array
package for this to work. You also need \arraybackslash
in at least the last column to have \\
correctly end the table row.
Output:

If you need this for just a few cells, you can also use \raggedright
in these cells:
\begin{tabular}{|p{2cm}|p{2cm}|}
\raggedright First longerword & \raggedright\arraybackslash First longerword \\
Second Thing & Second Thing \\
\end{tabular}
If it's more than one column, you can also define your own column type:
\newcolumntype{R}{>{\raggedright\arraybackslash}p{2cm}}
\begin{tabular}{|R|R|}
First longerword & First longerword \\
Second Thing & Second Thing \\
\end{tabular}
\raggedright
are on target. but i find the hyphenation you show to be very strange indeed! if that actually happens (as opposed to being simply a made-up example), the hyphenation in the rest of your document must also be questionable.