How to correctly get a IDisposeable when you need to lock the factory? If I need to create a IDisposeable object from a factory, but if the factory object is not thread safe and requires me to lock on it is this the correct pattern to use?

public void DisposeExample(FactoryClass factoryClass)
{
    DispObject dispObject = null;

    lock(factoryClass)
    {
        dispObject = factoryClass.GetDispObject();
    }

    using(dispObject)
    {
        dispObject.DoWork();
    }
}
Yes, assuming the factory is shared between threads and the created object doesn't contain any resource that is shared with other objects from the same factory.

But as was already pointed out in your previous question, a better solution might be to have a separate factory for each thread. Factories usually don't use much resources, so it should be fine to have more of them.