Простой ответ (меньше я ошибаюсь), нет. Обычно это не очень хорошая идея по двум причинам. Во-первых, потому что это вызывает проблему доверия между вашей программой и другими программами (не говоря уже о том, что люди не будут доверять вашему приложению). во-вторых, если вы смогли получить доступ к памяти других приложений и внести изменения без ведома приложения, вы вызовете сбой приложения (это также делают вирусы).
Сборщик мусора вызывается из среды выполнения. Среда выполнения «владеет» пространством памяти и позволяет другим приложениям «жить» в этом пространстве памяти. Вот почему сборщик мусора может существовать. Вам нужно будет создать среду выполнения, для которой ОС выделяет память, среда выполнения будет запускать приложение под ее полномочиями, а также использовать GC под ее полномочиями. Вам нужно будет разрешить использование некоторого инструментария или API, который позволяет разработчику приложения «запрашивать» память из вашей среды выполнения (не ОС), и ваша среда выполнения может не только отвечать на такой запрос, но и отслеживать пространство памяти, которое оно выделение для этого приложения. Вероятно, вам потребуется структура (набор DLL), которая делает эти вызовы доступными для приложения (разработчик будет использовать их для формирования запроса внутри своего приложения).
Вы должны быть уверены, что ваш сборщик мусора не удаляет память, отличную от памяти, используемой выполняемым приложением, поскольку в вашей среде выполнения может одновременно работать более 1 приложения.
Надеюсь, это поможет.