With {NiceTabular} of nicematrix, you specify all the characteristic of a TikZ rule (eg thick) in optional argument of | and \Hline (the version of \hline in nicematrix).
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\setlength{\arrayrulewidth}{0.2pt}
\begin{NiceTabular}{|c|[tikz=thick]c|c|}
\Hline[tikz=thick]
1 & 2 & 3 \
\Hline
4 & 5 & 6 \
\Hline
7 & 8 & 9 \
\Hline[tikz=thick]
\end{NiceTabular}
\end{document}

If you want, you can define shortcuts with the standard commands \newcolumntype and \newcommand (or \def of TeX, etc.).
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\setlength{\arrayrulewidth}{0.2pt}
\newcolumntype{I}{|[tikz=thick]}
\newcommand{\MyHline}{\Hline[tikz=thick]}
\begin{NiceTabular}{|cIc|c|}
\MyHline
1 & 2 & 3 \
\Hline
4 & 5 & 6 \
\Hline
7 & 8 & 9 \
\MyHline
\end{NiceTabular}
\end{document}
The output is the same.
It's still possible to add an option to that command \MyHline and that letter I to change the color of the rule.
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\setlength{\arrayrulewidth}{0.2pt}
\newcolumntype{I}{|[tikz=thick]}
\newcommand{\MyHline}{\Hline[tikz=thick]}
\begin{NiceTabular}{|cI[color=blue]c|c|}
\MyHline[color=red]
1 & 2 & 3 \
\Hline
4 & 5 & 6 \
\Hline
7 & 8 & 9 \
\MyHline
\end{NiceTabular}
\end{document}

However, nicematrix provides a tool to define both the letter and the command for the same type of rule (and these definitions will be available only in the environments of nicematrix).
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\setlength{\arrayrulewidth}{0.2pt}
\NiceMatrixOptions
{
custom-line =
{
command = MyHline ,
letter = I ,
tikz = { color = red, line width = 1 pt } ,
total-width = 1pt
}
}
\begin{NiceTabular}{|cIc|c|}
\MyHline
1 & 2 & 3 \
\Hline
4 & 5 & 6 \
\Hline
7 & 8 & 9 \
\MyHline
\end{NiceTabular}
\end{document}
With this code, a reservation is done for the rules (vertically and horizontally) thanks to the key total-width.

\hrulewidth is still much thicker than that shown in the example. The standard\hruleis already thick enough, I need an even thinner one in between. I tried just reversing2\arrayrulewidthtoarrayrulewidth\2but that won't compile. – Dan Jan 04 '18 at 22:42\arrayrulewidthto something smaller than0.4pt. Note that your viewer might snap to certain widths, making things appear thicker/thinner than they truly are. – Werner Jan 04 '18 at 22:44\arrayrulewidth/2isn't the correct syntax. if you want a fractional value, you have to use a decimal:.5\arrayrulewidth. (or0.5if you're really fastidious.) – barbara beeton Jan 04 '18 at 23:17