The documentation found at:
http://subsonicproject.com/active-record/transactions/
is wrong. The SharedDbConnectionScope should be within the TransactionScope. So it should look like:
using (TransactionScope ts = new TransactionScope()) {
using (SharedDbConnectionScope sharedConnectionScope = new SharedDbConnectionScope()) {
    Product p = new Product(1);
    p.Title = "new title";
    Product p2 = new Product(2);
    p.Title = "another new title";
    // ...
    p.Save();
    p2.Save();
    ts.Close();
}
}