Hi,
There is, but it's more complex.
You need to wrap your custom field in a div with an id starting with hikashop_product_ and ending wih _main
You also need to loop on the $this->element->variants array to call $fieldClass->show on each element and wrap each HTML around a div with a display:none on it, an id which is similar to the main div but with the id of each value for the current variant instead of "main". I would recommend to do this in product / show as there is already a loop for all the rest of the variant data there with the variable $variant_name you can use instead of calculating the ids of the variants yourself.
And lastly, you need to modify the javascript in product / show_block_characteristic to add to this array
var names = ['id','name','code','image','price','quantity','description','weight','url','width','length','height','contact','custom_info','files'];
the text you have between hikashop_product_ and _main in the id of the main div.
So it's totally possible but instead of 1 line of code at one place, you need several lines in several places.