Да, приведите его к IDictionary и заблокируйте .SyncRoot
:
Generic.Dictionary<int, int> dic = new Generic.Dictionary<int, int>();
lock (((IDictionary)dic).SyncRoot)
{
// code
}
Благодаря этому источнику за информацию.
Конечно, потокобезопасный словарь тоже подойдет, как и предлагали другие.