Could I dispose IDisposable objects that are part of a Thread?
Strictly speaking, it depends on what InitProcess does.  It may very well work OK as long as it never touches resources in the ProcessThread class which get disposed.

However, even if it works this time, it is a bad idea.  Passing a method group from a class which gets disposed before the thread even starts is asking for trouble.

A better option would be to create a method inside your ServiceTest class that the thread executes.  Inside that thread, you can instantiate a ProcessThread object, call InitProcess, and ensure that Dispose is only called once InitProcess has completed:

protected override void OnStart(string[] args)
{
    m_cProcessThread = new Thread(InitProcess);
    m_cProcessThread.Start();
}

private void InitProcess()
{
    using(var processThread = new ProcessThread())
    {
        processThread.InitProcess();
    }
}


You may also note that I removed the explicit construction of a ThreadStart delegate.  In many cases, you can pass a method group directly where delegates are called for.  I find it a little cleaner to do so.