Are you looking for this?
\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=3pt, row sep=5pt,nodes={inner sep=0pt,align=center,
text width={width("20")}},nodes in empty cells,
execute at end picture={
\foreach \x in {1,3}
{
\draw
([yshift=-3,xshift=-.125\pgflinewidth]\tikzcdmatrixname-\x-1.south west) --
([yshift=-3,xshift=-.125\pgflinewidth]\tikzcdmatrixname-\x-12.south east);
}
\foreach \y in {3}
{
\draw
([yshift=.5\pgflinewidth]\tikzcdmatrixname-1-\y.north west) --
([yshift=.5\pgflinewidth]\tikzcdmatrixname-6-\y.south west);
}}]
&&0&0&0&0&0&0&0&0&0&0\\
&0&1&2&3&4&5&6&7&8&9&10\\
0&1&0&1&2&3&4&5&6&7&8&9\\
0&2&1&0&1&2&3&4&5&6&7&8\\
0&3&2&1&0&1&2&3&4&5&6&7\\
0&4&3&2&1&0&1&2&3&4&5&6
\end{tikzcd}
\end{document}

Here I was employing Henri Menke's nice answer and added nodes in empty cells and changed some numbers to only use existing nodes.
ADDENDUM: If you want to the lines right in the middle between the cells without having to add all the shifts by fractions of the line width, you could use the calc library.
\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{tikz-cd}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzcd}[column sep=3pt, row sep=5pt,nodes={inner sep=0pt,align=center,
text width={width("20")}},nodes in empty cells,
execute at end picture={
\foreach \x [evaluate=\x as \xp using {int(\x+1)}] in {1,3}
{
\draw ($(\tikzcdmatrixname-\x-2.south)!0.5!(\tikzcdmatrixname-\xp-2.north)$)
coordinate (aux)
([xshift=-.1em]\tikzcdmatrixname.west|-aux) --
([xshift=.1em]\tikzcdmatrixname.east|-aux);
}
\foreach \y [evaluate=\y as \ym using {int(\y-1)}] in {3}
{
\draw ($(\tikzcdmatrixname-1-\y.west)!0.5!(\tikzcdmatrixname-1-\ym.east)$)
coordinate (aux)
([yshift=0.1ex]\tikzcdmatrixname.north-|aux) --
([yshift=0.1ex]\tikzcdmatrixname.south-|aux);
}}]
&&0&0&0&0&0&0&0&0&0&0\\
&0&1&2&3&4&5&6&7&8&9&10\\
0&1&0&1&2&3&4&5&6&7&8&9\\
0&2&1&0&1&2&3&4&5&6&7&8\\
0&3&2&1&0&1&2&3&4&5&6&7\\
0&4&3&2&1&0&1&2&3&4&5&6
\end{tikzcd}
\end{document}
As for the question what this might be good for: there are certain things that are somewhat harder to achieve with a table like e.g.
\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{tikz-cd}
\usetikzlibrary{calc,through,backgrounds}
\tikzset{circle through 3 points/.style n args={3}{%
insert path={let \p1=($(#1)!0.5!(#2)$),
\p2=($(#1)!0.5!(#3)$),
\p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
\p4=($(#1)!0.5!(#3)!1!90:(#3)$),
\p5=(intersection of \p1--\p3 and \p2--\p4)
in },
at={(\p5)},
circle through= {(#1)}
}}
\begin{document}
\begin{tikzcd}[column sep=3pt, row sep=5pt,nodes={inner sep=0pt,align=center,
text width={width("20")}},nodes in empty cells,
execute at end picture={
\foreach \x [evaluate=\x as \xp using {int(\x+1)}] in {1,3}
{
\draw ($(\tikzcdmatrixname-\x-2.south)!0.5!(\tikzcdmatrixname-\xp-2.north)$)
coordinate (aux)
([xshift=-.1em]\tikzcdmatrixname.west|-aux) --
([xshift=.1em]\tikzcdmatrixname.east|-aux);
}
\foreach \y [evaluate=\y as \ym using {int(\y-1)}] in {3}
{
\draw ($(\tikzcdmatrixname-1-\y.west)!0.5!(\tikzcdmatrixname-1-\ym.east)$)
coordinate (aux)
([yshift=0.1ex]\tikzcdmatrixname.north-|aux) --
([yshift=0.1ex]\tikzcdmatrixname.south-|aux);
}
\begin{scope}[on background layer]
\node[circle through 3
points={\tikzcdmatrixname-2-2}{\tikzcdmatrixname-3-1}{\tikzcdmatrixname-3-3},
fill=blue!20]{};
\end{scope}
}]
&&0&0&0&0&0&0&0&0&0&0\\
&0&1&2&3&4&5&6&7&8&9&10\\
0&1&0&1&2&3&4&5&6&7&8&9\\
0&2&1&0&1&2&3&4&5&6&7&8\\
0&3&2&1&0&1&2&3&4&5&6&7\\
0&4&3&2&1&0&1&2&3&4&5&6
\end{tikzcd}
\end{document}

Yet for many purposes, the table approach suggested by Joule V is just fine or even better. It really depends on what you want to do in the end.
tikz-cdis using atikzmatrix, but thetikzcdenvironment does not give you atikzpictureenvironment in which you can just use\draw. – Mar 27 '19 at 15:12