Для того, чтобы у вас сайт работал, ядро должно быть доступно процессам на уровне веб-сервера. По этой причине все равно придется его держать где-то в пределах доступности сайта, даже если то будет за пределами корневой директории сайта. А по поводу того, как сделать, чтобы ядро вообще не виделось по запросу извне, как будто его нет, вот вам nginx-конфиг для примера:
location ~ ^/(assets|core|manager|connectors)/{ rewrite .*$ /404.html last; }
Такая конструкция будет перенаправлять все запросы к системным папкам на 404-ую. В MODX-е делаете себе 404-ую и выводите что хотите. А чтобы админка и прочее у вас работало, просто создаете в корне сайта симлинки на эти папки и в конфигах MODX-а указываете их вместо дефолтных. Вот попробуйте прощупать системные папки здесь: business-vs-crisis.ru/ Это гораздо лучше скрывает MODX, чем когда просто закрываешь системные папки.