I put a breakpoint in BrowserThreadImpl::BrowserThreadImpl and then ran Chrome. The first thread created here was the UI thread. The second one was the IO Thread. This is the call stack that I saw:
chrome.dll!content::BrowserThreadImpl::BrowserThreadImpl(content::BrowserThread::ID identifier, scoped_refptr<base::SingleThreadTaskRunner> task_runner) Line 104 C++
chrome.dll!content::BrowserProcessIOThread::RegisterAsBrowserThread() Line 51 C++
> chrome.dll!content::BrowserMainLoop::CreateThreads() Line 909 C++
chrome.dll!base::OnceCallback<int ()>::Run() Line 143 C++
chrome.dll!content::StartupTaskRunner::RunAllTasksNow() Line 43 C++
chrome.dll!content::BrowserMainLoop::CreateStartupTasks() Line 869 C++
chrome.dll!content::BrowserMainRunnerImpl::Initialize(content::MainFunctionParams parameters) Line 137 C++
chrome.dll!content::BrowserMain(content::MainFunctionParams parameters) Line 26 C++
This was on Windows using Visual Studio as the debugger, but the basics should be similar on other operating systems.
So, look in BrowserMainLoop::CreateThreads and maybe you'll find what you are looking for.