Slow query - big difference between estimated and actual rows
Row goal
The issue with the estimates is most likely due to the row goal introduced by the TOP (500). See:
How (and why) does TOP impact an execution plan?
If you find the estimates are much better without the TOP, or by adding OPTION (QUERYTRACEON 4138) to the query, that would confirm the hypothesis.
Trace flag 4138 is documented in KB 2667211:
A query may take a long time to run if the query optimizer uses the Top operator in SQL Server 2008 R2 or in SQL Server 2012.
You should also enable optimizer fixes with trace flag 4199.
Indexing
Consider creating an index on table 39, keyed on:
Id_Obj_To, Id_ObjType_To, Id_ObjType_From, Id_Obj_From

Ensure Id_Obj_From has a suitable data type (not e.g. a max type).
Predicte ordering
The optimizer does not reorder NOT EXISTS clauses well in your version of SQL Server. If you expect the NOT EXISTS clause to be more selective than the Gid_LineSet predicate, reorder those two clauses in the WHERE part of the query.