Regarding the first question, I am pretty sure this works. I have just tested it again. You should have a null value in the foreign key column of Table1 for each row that does not have a Table2 record related. Is that so in your case?
About question 2, if you already loaded a Table1 object into a scope, all changes to this object should be made within this scope. Including changing properties of a related object. If you want to work with another scope, you will have to load the object again. Note that loading within an active transaction is not mandatory but it is a good practice. Beginning a transaction makes sure the cache contains the latest values, so you will be always working with the actual values.
the Telerik team