To avoid making the table wider than the text area, I would suggest to use package tabularx
:
\documentclass{article}
\usepackage[square, comma, sort&compress]{natbib}
\usepackage[none]{hyphenat}
\usepackage[table]{xcolor}
\usepackage[rightcaption]{sidecap}
\usepackage{tabularx}
\usepackage{array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
%\usepackage{showframe}% visualize the text area, head and marginpar column
\begin{document}
\begin{table}[ht]% note: h does not really work to place it always here
\setlength\tabcolsep{1pt}
\begin{tabularx}{\textwidth}{|c|X|c|c|X|}
\hline
\textbf{ID}& \textbf{Risk} &\textbf{Probability}& \textbf{Impact}&
\textbf{Mitigation/\newline\hspace*{\fill}Limitation} \\
\hline \hline
R1 & \textbf{Issues with Model}: aaaaa, aaaaa aaaaaaa, aaaaaaa aaaaaa & xssssyz & xyzxyz
& aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R2 & \textbf{System Faults}: aaaaa, aaaaa bbbbbbbb aaaaaaa, aaaaaaa xxxxxxxxx aaaaaa &
xyz & xyzxyz & aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R3 & \textbf{Outcome Unobtainable}: aaaaa, aaaaa aaaaaaa, aaaaaaa aaaaaa & xyz &
xyzxaaaaavyz & aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R4 & \textbf{Delayed Deadlines}: aaaaa, aaaaa yyyyyy zzzzzzzzzzz yyyyyaaaa aaaaaaa,
aaaaaaa aaaaaa & xyz & xyzxyz & aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R5 & \textbf{Difficulty developing models}: aaaaa, aaaaa aaaaaaa, aaaaaaa aaaaaa & xyz &
xyzxyz & aaaaa and aaaaa aaa aaaa aaaaa zzzzzz zzzzzzz yyyyyy aaaaa xxxxxxx.\\ \hline
\end{tabularx}
\caption{Risk Analysis Table}
\label{table:5}
\end{table}
\end{document}

The X
-columns all together will raise the table to the given width (\textwidth
in the example). See the manual for more information.
But if you like, you could also center the table relative to the page using also the page margins:
\documentclass{article}
\usepackage[square, comma, sort&compress]{natbib}
\usepackage[none]{hyphenat}
\usepackage[table]{xcolor}
\usepackage[rightcaption]{sidecap}
\usepackage{array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\usepackage{showframe}% visualize the text area, head and marginpar column
\begin{document}
\begin{table}[h]
\setlength\tabcolsep{1pt}
\centerline{\begin{tabular}{ |P{1cm}|p{6cm}|P{2.1cm}|P{2cm}|p{5cm}| }
\hline
\textbf{ID}& \textbf{Risk} &\textbf{Probability}& \textbf{Impact}&
\textbf{Mitigation/Limitation} \\
\hline \hline
R1 & \textbf{Issues with Model}: aaaaa, aaaaa aaaaaaa, aaaaaaa aaaaaa & xssssyz & xyzxyz
& aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R2 & \textbf{System Faults}: aaaaa, aaaaa bbbbbbbb aaaaaaa, aaaaaaa xxxxxxxxx aaaaaa &
xyz & xyzxyz & aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R3 & \textbf{Outcome Unobtainable}: aaaaa, aaaaa aaaaaaa, aaaaaaa aaaaaa & xyz &
xyzxaaaaavyz & aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R4 & \textbf{Delayed Deadlines}: aaaaa, aaaaa yyyyyy zzzzzzzzzzz yyyyyaaaa aaaaaaa,
aaaaaaa aaaaaa & xyz & xyzxyz & aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R5 & \textbf{Difficulty developing models}: aaaaa, aaaaa aaaaaaa, aaaaaaa aaaaaa & xyz &
xyzxyz & aaaaa and aaaaa aaa aaaa aaaaa zzzzzz zzzzzzz yyyyyy aaaaa xxxxxxx.\\ \hline
\end{tabular}}
\caption{Risk Analysis Table}
\label{table:5}
\end{table}
\end{document}

Note: The additional frames in the image are made by package showframe
and only there to illustrate, that the table now uses both, the left and the right margin.
Another alternative would be to rotate the table using, e.g., package rotating
:
\documentclass{article}
\usepackage[square, comma, sort&compress]{natbib}
\usepackage[none]{hyphenat}
\usepackage[table]{xcolor}
\usepackage[rightcaption]{sidecap}
\usepackage{array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
%\usepackage{showframe}% visualize the text area, head and marginpar column
\usepackage{rotating}
\begin{document}
\begin{sidewaystable}[h]
\centering
\setlength\tabcolsep{1pt}
\begin{tabular}{ |P{1cm}|p{6cm}|P{2.1cm}|P{2cm}|p{5cm}| }
\hline
\textbf{ID}& \textbf{Risk} &\textbf{Probability}& \textbf{Impact}&
\textbf{Mitigation/Limitation} \\
\hline \hline
R1 & \textbf{Issues with Model}: aaaaa, aaaaa aaaaaaa, aaaaaaa aaaaaa & xssssyz & xyzxyz
& aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R2 & \textbf{System Faults}: aaaaa, aaaaa bbbbbbbb aaaaaaa, aaaaaaa xxxxxxxxx aaaaaa &
xyz & xyzxyz & aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R3 & \textbf{Outcome Unobtainable}: aaaaa, aaaaa aaaaaaa, aaaaaaa aaaaaa & xyz &
xyzxaaaaavyz & aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R4 & \textbf{Delayed Deadlines}: aaaaa, aaaaa yyyyyy zzzzzzzzzzz yyyyyaaaa aaaaaaa,
aaaaaaa aaaaaa & xyz & xyzxyz & aaaaa and aaaaa aaa aaaa aaaaa\\ \hline
R5 & \textbf{Difficulty developing models}: aaaaa, aaaaa aaaaaaa, aaaaaaa aaaaaa & xyz &
xyzxyz & aaaaa and aaaaa aaa aaaa aaaaa zzzzzz zzzzzzz yyyyyy aaaaa xxxxxxx.\\ \hline
\end{tabular}
\caption{Risk Analysis Table}
\label{table:5}
\end{sidewaystable}
\end{document}

There are several other possible solutions, like using a smaller font, using package pdflscape
, using package tabularray
etc.
One additional note: Most tables look better, if you remove vertical lines and reduce horizontal lines. See the manual of package booktabs
for information about good looking and good readable tables.
\textwidth
(that is, the width of the body text on the page. You got 1cm + 6cm + 2.1cm + 2cm + 5cm which is already 16.1 cm and you need to add 2 × 1 pt padding (the width defined by\tabcolsep
) for every column. Together, this results in about 468.08 pt, which is obviously more than\textwidth
, which is 345 pt in your set up.tabularx
package which does a lot of calcultions for you (see the answer).