`\arraystretch` ist der Skalierungsfaktor für die Höhe und Tiefe der `\@arstrutbox`. Diese wird am Anfang von `\@array` gesetzt. Wenn man also mitten in einer Tabelle den `\arraystretch` mit dem Resultat ändern möchte, dass die Zellenhöhe beeinflusst wird muss man auch `\@arstrutbox` neu setzen. Da der Inhalt jeder Zelle in einer eigenen Gruppe expandiert wird muss man das ganze noch `\global` machen.
Der Einfachheit halber habe ich dazu ein Makro `\setarraystretch` vorbeireitet, das als Argument den neuen `\arraystretch` nimmt. Hier ein Beispiel:
\documentclass{article}
\usepackage{siunitx,booktabs,chemmacros}
\makeatletter
\newcommand\setarraystretch[1]{%
\gdef\arraystretch{#1}%
\global\setbox\@arstrutbox\hbox{%
\vrule \@height\arraystretch\ht\strutbox%
\@depth\arraystretch \dp\strutbox%
\@width\z@}%
}
\makeatother
\begin{document}
\sisetup{table-format=1.4}
\begin{tabular}{r@{\qquad}SSSSSS[table-format=4.0]}
\toprule
\setarraystretch{2}%
& {$x_l$} & {$x_0$} & {$x_r$} & {$\nu_0$} & {$\Delta \nu$} & {$Q$} \\
\setarraystretch{1}%
{Sample} & [\si{\milli\metre}] & [\si{\milli\metre}] & [\si{\milli\metre}]
& [\si{\GHz}] & [\si{\kHz}] & [\si{1}] \\
\midrule
empty & 7.808 & 7.832 & 7.848 & 9.518 & 5.363 & 1775 \\
\ch{DPPH} & 7.868 & 7.888 & 7.908 & 9.511 & 5.326 & 1786 \\
\ch{CuSO4} & 7.876 & 7.896 & 7.920 & 9.510 & 5.852 & 1625 \\
\ch{Mn^2+} & 7.808 & 7.832 & 7.852 & 9.518 & 5.898 & 1614 \\
\bottomrule
\end{tabular}
\end{document}
> ![alt text][1]
[1]: http://texwelt.de/wissen/upfiles/u_174.png