If you are in a hurry

\documentclass[twocolumn]{article}
\usepackage[T1]{fontenc}
\usepackage{tabularray} % <<----- added
\UseTblrLibrary{booktabs} % <<----- added
\usepackage{booktabs, array}
\usepackage{lipsum}
\begin{document}
\begin{table}
\centering
\begin{tblr}{colspec={Q[c,m]Q[c,m]},rows={rowsep=4pt},stretch=0}
\toprule
11 & 2 \
\midrule
3 & 4444444 \
\bottomrule
\end{tblr}
\caption{tblr with numbers}
\end{table}
\lipsum[1-15] % filler text
\end{document}
Long answer
Note 1: I've used a different package: tabularray
Note 2: I'd recommend you to read Mico's answer before mine.
About "align cell content both horizontally and vertically":
The tabularray package has a nice way to centralize everything. But as far as I know, it considers that the line to have a full height (with ascenders AND descenders) to perform the alignment. (Mico talks better about it)
You can see this in the following two examples stolen from the package documentation:

\documentclass[twocolumn]{article}
\usepackage[T1]{fontenc}
\usepackage{tabularray} % <<----- added
\UseTblrLibrary{booktabs} % <<----- added
\usepackage{booktabs, array}
\usepackage{lipsum}
\begin{document}
\begin{table}
\centering
\begin{tblr}{lccr}
\hline
Alpha & Beta & Gamma & Delta \
\hline
Epsilon & Zeta & Eta & Theta \
\hline
Iota & Kappa & Lambda & Mu \
\hline
\end{tblr}
\caption{tblr with text}
\end{table}
\begin{table}
\centering
\begin{tabular}{lccr}
\hline
Alpha & Beta & Gamma & Delta \
\hline
Epsilon & Zeta & Eta & Theta \
\hline
Iota & Kappa & Lambda & Mu \
\hline
\end{tabular}
\caption{tabular with text}
\end{table}
\lipsum[1-15] % filler text
\end{document}
However, when you only use numbers (As Mico said, numbers have ascenders but not descenders) you get this, on which the tblr works even worse than tabular:

\begin{table*}
\centering
\begin{tblr}{Q[c,m,1cm]Q[c,m,1cm]}
\toprule
1 & 2 \\
\midrule
3 & 4 \\
\bottomrule
\end{tblr}
\caption{tblr with numbers}
\end{table*}
\begin{table}
\centering
\begin{tabular}{>{\centering\arraybackslash}m{1cm}>{\centering\arraybackslash}m{1cm}}
\toprule 1 & 2 \ \midrule 3 & 4 \ \bottomrule
\end{tabular}
\caption{tabular with numbers}
\end{table}
Option 1 (this one is better)
Thanks to L.J.R.'s suggestion we can use stretch=0. I also used rowsep=4pt to make the table look less squished.

\begin{table*}
\centering
\begin{tblr}{colspec={Q[c,m,1cm]Q[c,m,1cm]},stretch=0}
\toprule
1 & 2 \\
\midrule
3 & 4 \\
\bottomrule
\end{tblr}
\caption{tblr without rowsep=4pt}
\end{table*}
\begin{table}
\centering
\begin{tblr}{colspec={Q[c,m,1cm]Q[c,m,1cm]},stretch=0,rows={rowsep=4pt}}
\toprule
1 & 2 \
\midrule
3 & 4 \
\bottomrule
\end{tblr}
\caption{tblr with rowsep=4pt}
\end{table}
Option 2 (old solution)
You can manually fix this problem very easily by using abovesep+ to add space above text like so:

\begin{table*}
\centering
\begin{tblr}{colspec={Q[c,m,1cm]Q[c,m,1cm]},rows={abovesep+=2pt}}
\toprule
1 & 2 \\
\midrule
3 & 4 \\
\bottomrule
\end{tblr}
\caption{tblr with numbers}
\end{table*}
\begin{table}
\centering
\begin{tabular}{>{\centering\arraybackslash}m{1cm}>{\centering\arraybackslash}m{1cm}}
\toprule 1 & 2 \ \midrule 3 & 4 \ \bottomrule
\end{tabular}
\caption{tabular with numbers}
\end{table}
About "make column width scale automatically (with its content)":
Not setting a width to Q column would solve this issue, wouldn't it?

\documentclass[twocolumn]{article}
\usepackage[T1]{fontenc}
\usepackage{tabularray} % <<----- added
\UseTblrLibrary{booktabs} % <<----- added
\usepackage{booktabs, array}
\usepackage{lipsum}
\begin{document}
\begin{table}
\centering
\begin{tblr}{colspec={Q[c,m]|Q[c,m]},stretch=0,rows={rowsep=4pt}}
\toprule
1 & 2 \
\midrule
3 & 4 \
\bottomrule
\end{tblr}
\caption{tblr with numbers}
\end{table}
\begin{table}
\centering
\begin{tblr}{colspec={Q[c,m]|Q[c,m]},stretch=0,rows={rowsep=4pt}}
\toprule
11 & 2 \
\midrule
3 & 4444 \
\bottomrule
\end{tblr}
\caption{tblr with numbers}
\end{table}
\lipsum[1-15] % filler text
\end{document}
Problem when you mix number and letters
The problem reappears when you mix letters and numbers (see Table 1 below). It's important to note that the alignment is being performed as if each character in the same row had the same total height as a box formed by them all. So a 3 and a p will be aligned as if they were 3p, which causes a visual misalignment.

Note that 3 has no depth and p has less height than 3. Here is a good discussion on this topic of height and depth.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tabularray} % <<----- added
\UseTblrLibrary{booktabs} % <<----- added
\usepackage{xcolor} % <<----- added
\usepackage{booktabs,array}
\newlength\height
\newlength\depth
\newlength\totalheight
\newcommand{\RULE}[1]{%
\settoheight{\height}{#1}%
\settodepth{\depth}{#1}%
\setlength\totalheight{\dimexpr\height+\depth\relax}%
\rule[-\depth]{0.1pt}{\totalheight}#1\rule[-\depth]{0.1pt}{\totalheight}%
}
\newcommand{\STH}[1]{%
\settoheight{\height}{#1}%
\settodepth{\depth}{#1}%
\setlength\totalheight{\dimexpr\height+\depth\relax}%
height of \textcolor{red}{#1}: \textcolor{blue!70!gray}{\the\height}\par
depth of \textcolor{red}{#1}: \textcolor{blue!70!gray}{\the\depth}\par
total height of \textcolor{red}{#1}: \textcolor{blue!70!gray}{\the\totalheight}\par
\vspace{8pt}
}
\begin{document}
\STH{3}
\STH{p}
\STH{3p}
\begin{table}[t]
\centering
\begin{tblr}{colspec={Q[c,m]Q[c,m]},stretch=0}
\toprule
1 & 2 \
\midrule
AAAA & 6 \
\midrule
g & pppp \
\midrule
33 & pppp \
\midrule
\RULE{3} & \RULE{p} \
\midrule
\RULE{\vphantom{3p}3} & \RULE{\vphantom{3p}p}\
\midrule
\RULE{3p} & \RULE{3p}\
\bottomrule
\end{tblr}
\caption{tblr with numbers and letters}
\end{table}
\end{document}