This has nothing to do with threads - it is purely a data transfer between objects problem.
In order to transfer data between two forms (assume Form1 has the new data, and Form2 should end up receiving it), you either need
1) To know the instance of Form2 you want to transfer to in Form1
or
2) To get Form2 to subscribe to an event in the instance of Form1 that will have the data.
If you do this in Form1:
Form2 f = new Form2();
f.Show();
Then you can use the first method.
1) Save the Form2 instance in a class level variable in Form1 (this just means moving it outside any method code and putting "private" in front of it.
2) Set up a Property in Form2 to receive the data, and handle it.
3) When you want to give the data to Form2, you just set the property value, using the class level variable.
If you don't, then you will need to set up and signal an event in Form2, and set the Form1 instance to handle it, wherever you do create Form2 and Form2.
This is a little more complex (but a much better solution) - I can give you the details if you need them.