Not really. Instances of a same program are kept apart by virtual memory. Each instance has no mean (except with specific api calls) to access the other's memory, they are totally isolated.
HINSTANCE is just a handle to identify your application for others WINAPI calls. But actually, it is not even to identify your application from other instances, but to identify it from others applications executable files inside your applications, like DLLs (a DLL inside your app will have its own HINSTANCE, usually given as a HMODULE, which is the same). If you run your program twice, the HINSTANCE may be the same for both.
As a side note, HINSTANCE is actually a pointer to the memory image of the executable file. Therefore you can do printf("%s\n",hInstance);
, and it will always print MZ?
(? depends on your locale), because a windows executable file always starts with "MZ\x90\x00".