Three alternative solutions for this kind of tables:
First: TiKZ as in the original question.
The problem trying to use TikZ as an alternative to tabular is that the former doesn't adjust node sizes between them. All nodes keep its real size and if they are draw-n lines doesn't adjust. One solution for this problem has been shown in CarLaTeX answer. It consists in forcing some node size, large enough to encompass all cells contents.
If we prefer not to do it, an alternative solution consists in draw nodes without visible border (draw=none) and manually draw borders and fill nodes once the matrix is finished. We should do it on the background.
\begin{tikzpicture}
\matrix[table, ampersand replacement=\&] (TabA1)
{
A1 \& A2 \& A3 \\
B1 \& $10^{2^{3^{4^{5}}}}$ \& $10^{2^{3^{4^{5^{6^{7^{8}}}}}}}$ \\
};
\begin{scope}[on background layer]
\foreach \i in {1,2,3}
\draw[fill=black!10] ([xshift=\pgflinewidth]TabA1-1-\i.south west) rectangle ([xshift=-\pgflinewidth]TabA1-2-\i.south east);
\end{scope}
\end{tikzpicture}

Second: Using tabular with colortbl.
In this case, a new column type has been declared (array is needed) with
command \newcolumntype{C}[1]{>{\centering\arraybackslash\hspace{0pt} \columncolor[gray]{.9}}p{#1}}. All cells will have a gray background. For header row command \rowcolor will fix its background to black. I've also used \setlength\arrayrulewidth{.6pt} to avoid the problem mentioned in Adobe Reader and xcolor within a table breaks the line render.
\begin{tabular}{|C{10em}|C{10em}|C{10em}|}
\hline
\rowcolor[gray]{0}
\color{white}{A1} & \color{white}{A2} & \color{white}{A3} \\
\hline
B1 & $10^{2^{3^{4^{5}}}}$ & B3\\
\hline
\end{tabular}

Third: Using a tcbraster from tcolorbox. tcbraster are more or less like tabular but their elements are tcolorboxes. They have the advantage that its possible to automatically fix equal height for all boxes in the same row. So, we don't have to worry about node sizes or drawing in background. As in TikZ is possible to define different styles for columns or rows. With raster equal height=rows two compilations are needed to obtain the correct table.
\begin{tcbitemize}[%
raster columns=3,
raster equal height=rows,
raster width=33em,
boxrule=.6pt,
raster row skip=-.6pt,
raster column skip=-.6pt,
sharp corners,
colframe=black,
colback=black!10,
halign=center,
valign=bottom,
raster row 1/.style={colback=black, colupper=white}]
\tcbitem A1
\tcbitem A2
\tcbitem A3
\tcbitem B1
\tcbitem $10^{2^{3^{4^{5}}}}$
\tcbitem B3
\end{tcbitemize}

The complete code for all three solutions is:
\documentclass[12pt,twoside]{report}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}
\usepackage{mathtools,array,colortbl}
\usepackage[most]{tcolorbox}
\usepackage{tikz}
\usetikzlibrary{matrix, backgrounds}
\tikzset{
table/.style={
matrix of nodes,
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
nodes={
rectangle,
%draw=black,
align=center,
text width=10em,
%fill=gray!10,
},
%baseline={([yshift=-0.5ex]current bounding box.center)},
%minimum height=1.0em,
%text depth=0.2em,
%text height=0.8em,
%text centered,
nodes in empty cells,
row 1/.style={nodes={fill=black, text=white, font=\bfseries}},
}
}
\newcolumntype{C}[1]{%
>{\centering\arraybackslash\hspace{0pt}%
\columncolor[gray]{.9}}p{#1}}
\begin{document}
\begin{table}
\centering
\begin{tikzpicture}
\matrix[table, ampersand replacement=\&] (TabA1)
{
A1 \& A2 \& A3 \\
B1 \& $10^{2^{3^{4^{5}}}}$ \& B3 \\
};
\begin{scope}[on background layer]
\foreach \i in {1,2,3}
\draw[fill=black!10] ([xshift=\pgflinewidth]TabA1-1-\i.south west) rectangle ([xshift=-\pgflinewidth]TabA1-2-\i.south east);
\end{scope}
\end{tikzpicture}
\caption{Glossary: with \texttt{TikZ} drawing cells on background layer}
\label{tabA1}
\end{table}
\begin{table}
\setlength\arrayrulewidth{.6pt}
\centering
\begin{tabular}{|C{10em}|C{10em}|C{10em}|}
\hline
\rowcolor[gray]{0}
\color{white}{A1} & \color{white}{A2} & \color{white}{A3} \\
\hline
B1 & $10^{2^{3^{4^{5}}}}$ & B3\\
\hline
\end{tabular}
\caption{Glossary: with \texttt{coltbl}}
\label{tabA1}
\end{table}
\begin{table}
\centering
\begin{tcbitemize}[%
raster columns=3,
raster equal height=rows,
raster width=33em,
boxrule=.6pt,
raster row skip=-.6pt,
raster column skip=-.6pt,
sharp corners,
colframe=black,
colback=black!10,
halign=center,
valign=bottom,
raster row 1/.style={colback=black, colupper=white}]
\tcbitem A1
\tcbitem A2
\tcbitem A3
\tcbitem B1
\tcbitem $10^{2^{3^{4^{5}}}}$
\tcbitem B3
\end{tcbitemize}
\caption{Glossary: with \texttt{tcolorbox}}
\label{tabA1}
\end{table}
\end{document}
tikzmandatory for you or could you choose a simpletabular? See here: https://tex.stackexchange.com/a/172523/101651 – CarLaTeX Aug 17 '17 at 02:11tablestyle for all the table for which it works and set the options directly for the tables which need the height correction.anchor=southis a way to refine the node positioning, see para. 17.5.1 of thetikzmanual. If you userow sep=0mmthe cell borders are printed "twice" and seem bigger. – CarLaTeX Aug 17 '17 at 09:50