Is it possible to sort posts by custom column in wp_posts table (in this case, 'fav_count' column) using pre_get_posts filter? If not, is there any other way to do this before the main query is run, without modifying WP core files?
I found out the answer myself.
There are other filters that let you adjust the query before it's run: http://codex.wordpress.org/Plugin_API/Filter_Reference/posts_clauses
The posts_clauses filter runs before the query gets executed and is essentially the sum of all filters that run immediately before it.
Apart from posts_clauses, there are several more precise filters that modify only a single specific clause:
So in my case, all I had to do was to use posts_orderby filter.