It all depends on what Object1 actually is, i.e. is it a DataTable, a String, or something else entirely?
By writing:
object Object1 = new Thing();
object Object2 = Object1;
You get a second reference to the object you instantiated in the first line. What you need to do is look at "Thing" and see if it has a Copy, Clone or similarly named method and use that:
object Object1 = new Thing();
object Object2 = Object1.Copy();
For example, DataTable offers both Copy and Clone methods, where Copy duplicates both the structure of the DataTable and the data and Clone only duplicates the structure.