I came up with idea that it could be done using common audio DAC and good quality ADC. Monitoring sine wave output from the DAC in real time, I can feed forward antiphase THD data to the digital stream I'm seeding. Locking the control loop would eliminate distortion down to about +10 dB above the noise floor of the ADC. My initial test ( CS4354 & CS5361 ) shows that idea works, with some limitation, control algorithm is slow and charges in frequency or magnitude demands some timing to stabilize the THD level back.
Next step is to get noise floor down to -130 or so, and audio cs5361 is not the right part. Testing analog device (AD7984) can't get linearity level specified in DS, Thinking, I will straighten up this bitch first running data against ads1232.
Something like in two stages, linearizing ad7984 - slowly with oversampling using 24-bits slow adc but with linearity 20+ bits, than straighten up DAC at the next level.
Overall cost less than $100, including stm32H743 nucleo board, EVAL-ad7984 ADC and any CS or WM audio dac.