The workaround would be to put the Lookup on the form, set the lookup view to one that would always return no records, hide the lookup field (portal side add a Metadata tag and add a CSS class to hide it) . This lookup is just there to hold and save the result.
In a custom web template (or could use Web API) run a FechXML query to get a list of selectable items and then build your own interface using the items (and append it to the Portal DOM). On selection of an item etc populate the Lookup field so the value gets saved on form submit.