Dieses Verhalten ist in der Anleitung zu `tabularx` dokumentiert:
> • The body of the `tabularx` environment is in fact the argument to a command, and so certain constructions which are not allowed in command arguments (like `\verb`) may not be used.
Frei übersetzt: *Der Inhalt einer `tabularx`-Umgebung *`tabularx`*-Umgebung ist ein Argument einer Anweisung und daher können Konstrukte, die in einem Argument nicht erlaubt sind (beispielsweise `\verb`), *`\verb`*), darin nicht verwendet werden.*
Zwar versucht `tabularx` da noch zu retten, was zu retten ist, aber zaubern kann es eben nicht.
Dass `\verb` im Argument einer Anweisung nicht funktioniert, ist altbekannt. Das liegt daran, dass es mit `\catcode`-Änderungen arbeitet. Diese kommen allerdings innerhalb des Arguments einer Anweisung zu spät, weil zu dem Zeitpunkt das Argument bereits gelesen und die Token daher mit den `\catode`-Werten gebildet sind, die zum Zeitpunkt des Lesens des Arguments galten.
Als Notlösung kannst du mit `\texttt` und `\detokenize` oder `\string` arbeiten:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[version=4]{mhchem}
\usepackage{booktabs}
\usepackage{tabularx}
\newcommand*{\texttablehead}[1]{\textbf{#1}}
\newcommand*{\tablehead}[1]{\texttablehead{#1}}
\renewcommand{\arraystretch}{1.2}
\begin{document}
\section*{Reaktionspfeile mit dem Paket \texttt{mhchem}}
Ein nach rechts verschobenes chemisches Gleichgewicht einer chemischen Reaktion (\ce{A <=>> B})
wird mit dem Befehl \verb+\ce{A <=>> B}+ dargestellt.
\begin{table}[ht]
\sffamily
\caption{Befehl innerhalb \texttt{tabular}-Umgebung.}
\label{tab:tab_ReaktionsPfeil}
\begin{tabular}[\textwidth]{p{55mm}p{32mm}p{25mm}@{}}
\toprule
\tablehead{Reaktionsrichtung} & \tablehead{Ausgabe} & \tablehead{Befehl} \\
\toprule
Gleichgewicht & \ce{A <=> B} & \verb+\ce{A <=> B}+ \\
Gleichgewicht nach rechts & \ce{A <=>> B} & \verb+\ce{A <=>> B}+ \\
Gleichgewicht nach links & \ce{A <<=> B} & \verb+\ce{A <<=> B}+ \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[h]
\sffamily
\caption{Befehl innerhalb \texttt{tabularx}-Umgebung.}
\label{tab:tab_Reaktionspfeil}
\begin{tabularx}{\textwidth}{@{}p{55mm}p{32mm}p{25mm}@{}}
\toprule
\textbf{Reaktionsrichtung} & \textbf{Ausgabe} & \textbf{Befehl} \\
\toprule
Gleichgewicht & \ce{A <=> B} & \texttt{\detokenize{\ce{A <=> B}}} \\
Gleichgewicht nach rechts & \ce{A <=>> B} & \texttt{\string\ce\{A <=>> B\}} \\
Gleichgewicht nach links & \ce{A <<=> B} & \texttt{\string\ce\detokenize{{A <<=> B}}} \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
[![Tabellen][1]][1]
Man beachte die unterschiedliche Ausgabe bezüglich Leerzeichen bzw. die Unterschiedliche Behandlung von geschweiften Klammern.
[1]: https://texwelt.de/wissen/upfiles/test_20181205_171142.png