Hi,
I'm not sure to fully understand your question. As you know we have LoadLayout to load a layout designed in the Internal Designer. So you could prepare more than one alternative for a specific Activity and then load the desidered one based on code, settings, whatever.
By "external" do you mean available on a server of yours? In that case, yes, you could download it and make it active by LoadLayout. A key point will be that all the alternative layouts should sport objects named in the same way and your Activity's code should know about them.