If I set assumevalid=0 after syncing the blockchain will Bitcoin Core go back and validate historical blocks? I originally synced my node using the Bitcoin Core default assumevalid value. If I set -assumevalid=0 in bitcoin.conf and restart my node, will my node go back and validate historical blocks?
No, it won't.

That's also not possible without rebuilding the UTXO set from scratch, as the unspent outputs being spent need to be known to validate spends against.

If you want to force a revalidation from scratch, start with -reindex-chainstate. This will blow away the UTXO set, and recreate it from the blocks on disk, and revalidate everything in the process (including all signatures, if -assumevalid=0 is set).