Is there any solution to high-precision high-side sampling current measurement?
The simplest is low-side sampling by MCP3421. This one is easy and accurate. But this breaks the ground connection.

If you are content with this method then use one more chip that can provide isolated power and isolated buffers for SCL and SDA. I'm thinking here of the ADuM54xx series from ADI: -

(source: bdtic.com)
You can get versions with different IO configs to suit clock in and data out from the ADC. Possibly the ADuM5402 will be of most interest to your application.
Basically use the isolation chip and float your ADC up to 20V to make the measurement.