We can't give you a solution to this: it depends on the data primarily, and the column organisation.
Start by looking at your two data sources: identify which columns you need to work with and which define "availability", and work out exactly how you tell a row is "available". When you know that, you can start looking at finding them.
Actually doing it is pretty easy: write a method that accepts a row and checks it for "availability" - you can then use Linq (if you want to) to process all the rows from Table1 and build a collection of rows which are available.
var available = myDataTable.AsEnumerable().Select(r => IsAvailable(r));
But ... "add a new column in table 1" is a bit odd - you don't want to do that for every "available row", or do you? I'd suggest that you need to think a bit more carefully about exactly what you are trying to achievedatatable