I can't tell whether "*color16" and friends work in .Xresources and if not then why not.
You can, however, dynamically change the actual colors using the OSC 4 escape sequences, e.g. to change color 16 to #abcdef you should do something like this:
echo -ne '\e]4;16;#abcdef\a'
You could place such statements in your
.bashrc, with the condition that the output goes to a terminal (
if [ -t 1 ]; then...) or that the shell is interactive (look for "i" in
$-) so that you don't break scp/rsync.
This is supported by some terminal emulators, including xterm and vte (gnome-terminal etc.), but not by quite a few others, e.g. konsole.
The first 16 colors are different across all terminal emulators, and hence they offer a setting for the preferred values (via config file or in the graphical preferences dialog, depending on the emulator). The additional 232 (6x6x6 color cube + 24 grayscale) colors, however, are exactly the same in all terminal emulators according to my knowledge. By redefining them you'll diverge from "everyone" which might not be the best idea.
You could also take a look at true color support. It has a quite limited availability, though. It is supported by some popular terminal emulators such as gnome-terminal and konsole, but alas not by other popular ones like xterm or uxrvt. Also it's hardly supported by any apps, but it's easy to use them if you're manually emitting the escape sequences (e.g. in your shell prompt or a simple script).