Нет, вы не можете - по крайней мере, насколько я понимаю, реализация горячей точки:
По крайней мере, так работает с mark & sweep gc, но я почти уверен, что он похож на все другие реализации:
После фазы развертки каждый немаркированный завершенный объект добавляется в рабочий список с установленным битом отметки.
Затем фоновый работник прорабатывает этот список и после его завершения одним вызовом finalize очищает бит метки, чтобы он был очищен следующим GC. Вследствие этого вы не можете делать никаких предположений относительно КОГДА будет вызван метод finalize (фактически, поскольку фоновый поток, вероятно, также остановлен, вы можете быть почти уверены, что это не так, пока выполняется GC!).
Теперь это детали реализации для Hotspot и могут даже отличаться в разных реализациях GC.