You can probably not use that in a reliable way. The main problem is that all manner of relays (and MOSFET drivers etc) have quite a long delay to turn them on/off. Reading the datasheet of AQW227, it is fairly quick but still has a turn-on time of 0.2ms and turn-off time at 0.5ms, given 5mA load. This is still very slow compared to the program execution speed of the average MCU. And I think you can expect higher currents than 5mA too? Making it slower still.
The problem is that the relay must be activated before any CAN traffic can be allowed. Meaning that the program that activates it must do so before any other CAN node has started. And another program in the other end of the bus must do the same. While all other nodes must not start. You need to add a lot of advanced, pointless complexity to manage that.
Sure, you could just have them all trying to send with "brute force" until there are no more bus errors, but that's a sloppy solution. You wouldn't be able to tell the difference between start-up "noise" and real bus errors.
Also the so-called "low" on-resistance of this particular component is actually very high for this application, up to 100 ohm, no accuracy guaranteed. So what actual value you end up with as termination seems quite arbitrary. The CAN bus is rugged, but I bet you could get issues with this at higher baudrates.
All in all, messy and unreliable.
What you could probably use instead, is an analog switch with minimal on-resistance and much faster toggle times. See this similar problem with some suggested parts. (SN65HVD232 means he is using 3.3V levels too)
Now imagine how simple things would be if you would just put a 120 ohm resistor and a header strip with a jumper option on every node :)