>>n_kiteさん
ThreadsList側でretain autoreleaseするのは思い付きませんでした。それでいいと思います。

んでソース見たんですが、ThreadsDataSourceでは
update:とtableView:setObjectValue:...とsetSortKey:でしか
threadsLockをlockしてないんですが、tableView:objectValue...とか
localThreadsとnewThreadsにアクセスする全てのメソッドで
threadsLockのロック取得が必要だと思います。

実際に、オンラインモードで板を更新しまくると、tableViewDataSource#tableView:objectValue...249行目の
value = [[threads objectAtIndex:rowIndex] objectForKey:name];
のところで落ちます。

tableView:objectValue...メソッドを実行したのがThread-1で、
同時にThread-72がtableViewDataSource#updateの159行目、
[newThreads release];
で止まってました。