Since the tabular material must be typeset flush-left (aka ragged-right), I think the caption would look better if it, too, where set flush-left. (However, see below for a different solution.) One can achieve this formatting objective by loading the caption
package with the options singlelinecheck=false
and justification=raggedright
.

\documentclass[12pt,english]{article}
\usepackage{array,caption}
\captionsetup{singlelinecheck=false,justification=raggedright}
\begin{document}
\begin{table}[ht!]
\begin{tabular}{|c|>{\centering\arraybackslash}p{2cm}|}
\hline
Year & Population (millions)\\ \hline
$1900$ & $1650$\\
$1910$ & $1750$\\
$1920$ & $1860$\\
$1930$ & $2070$\\
$1940$ & $2300$\\
$1950$ & $2560$\\
$1960$ & $3040$\\
$1970$ & $3710$\\
$1980$ & $4450$\\
$1990$ & $5280$\\
$2000$ & $6070$\\
\hline
\end{tabular}
\caption{World Population}\label{table1}
\end{table}
\end{document}
Alternatively, if the caption must be centered below the tabular
material and the tabular
material must be typeset flush-left, I suggest you (a) run \captionsetup{justification=centering}
, (b) load the threeparttable package, and (c) encase both the tabular
environment and the \caption
statement in a threeparttable
environment. This setup allows LaTeX to measure the width of the tabular
material and to center the caption below the tabular; if needed, LaTeX will automatically insert line breaks in the caption. This behavior is shown in the following screenshot.

\documentclass[12pt,english]{article}
\usepackage{array,caption,threeparttable}
\captionsetup{justification=centering}
\begin{document}
\begin{table}[ht!]
\begin{threeparttable}
\begin{tabular}{|c|>{\centering\arraybackslash}p{2cm}|}
\hline
Year & Population (millions)\\ \hline
$1900$ & $1650$\\
$1910$ & $1750$\\
$1920$ & $1860$\\
$1930$ & $2070$\\
$1940$ & $2300$\\
$1950$ & $2560$\\
$1960$ & $3040$\\
$1970$ & $3710$\\
$1980$ & $4450$\\
$1990$ & $5280$\\
$2000$ & $6070$\\
\hline
\end{tabular}
\caption{World Population}\label{table1}
\end{threeparttable}
\end{table}
\end{document}