Assuming you're already have field control object (probably from SPContext.Current.FormContext?), you should use CssClass property to hide the control, rather than Visible property - because Visible property affects control server-side, so it will not be rendered at all.
Sample code:
(control as BaseFieldControl).CssClass = "s4-die";
s4-die
class is from COREV4.CSS
file, so it will be avaliable by default on all pages in SharePoint 2010. It is defined as follows:
.s4-die{
display:none;
}
Update: Here is the screenshot which proves that FieldControlCollection items have CssClass property:

Full-sized image: https://i.stack.imgur.com/p6r1v.png
Update 2: Unfortunately, it turned out, that modifying the CssClass property doesn't affect MultipleLookupField control. Reflector analysis screenshot:

Hence, neither LookupField, nor MultipleLookupField use this property... :(
So the only acceptable approach left here, I reckon, is to stoop to client-side solution :( But at least we could use ClientID
property rather than field title to reference the field control. Tentative javascript:
var clientId = '{0}_ctl00_MultiLookupPicker';
function hideMultiLookup()
{
var x = document.getElementById(clientId).parentElement.parentElement.parentElement.style.display = 'none';
}
_spBodyOnLoadFunctionNames.push('hideMultiLookup');
Where {0}
placeholder should be replaced with the actual client id (control.ClientID
). In my case it was:

Note we need to add _ctl00_MultiLookupPicker
to the control.ClientID
, as it performed in the script sample.
I've tested the solution and it works in my environment.