Apps like JauntePE use 2 things to form the basis of their portablization of an app - dll injection and api hooking. If you can find/write VB code to handle these 2 things, then yes, it's possible to do what you want.
BTW guys, apps like JauntePE are not virtual machines. All they do is redirect an app's OS api calls into their own code within the injected dll, which then either completely handles the entire process, like JauntePE does for registry api use, or makes a simple change to the call's parameters, like JauntePE does for file system api use, or some combo of the two. Thinstall (aka ThinApp), for example, does the same thing but handles the calls completely because they have their own file system embedded within their portable packages. They also have their own loader so they can get around other areas that apps like JauntePE have trouble with.
I forgot to add that there is a C# based api hooking article on CodeProject at EasyHook - The reinvention of Windows API hooking
]. Its current home is on CodePlex at http://www.codeplex.com/easyhook
]. According to the writeup, it does what Mr. Kreskowiak suggests is needed, e.g., "EasyHook provides a way to hook unmanaged code from a managed environment." I can't find any mention of VB.NET though.