Yes, this is possible with Chrome.
--remote-debugging-port=<port>
You can pick any port number that will be free.
Then, in ChromeDriver, you need to add an option:
var options = new ChromeOptions();
options.DebuggerAddress="<host>:<port>";
Use the host where you started Chrome (usually localhost), and the same port.
If you start Chrome with the default profile, and you already have a Chrome instance running on that profile, this won't work, and a new Chrome instance won't actually start - it will just open a new window.
In that case, you can add a new user-data-dir, and it will start a new Chrome instance.
--user-data-dir=<dir>