Thank you Fabian. Your solution worked great for me. I did make a minor tweak because I didn't want the script to run every second; I only needed it to execute at load. Sharing my very slightly tweaked version below:

function onLoad() {

	var $ = parent.$;

	function makeVariablesReadOnly() {
		var inputs = $('sp-variable-layout sp-variable-layout').find('input, textarea, select');
		for (var i=0; i<inputs.length; i++) {
			$(inputs[i]).attr('disabled', 'disabled');
		}		
	}	
	setTimeout(makeVariablesReadOnly, 1000);
}