И дальше вызываю метод dll, например static native String write() в нескольких потоках. Нужно ли синхронизировать метод write? Или же он уже на уровне navite сам это делает?
Сложно сказать, не зная, что метод делает. Если он не использует какое-либо состояние, то скорее всего не надо. Одно точно, на уровне native за вас никто ничего сам не делает.