Update only the oldest entry in a table with foreign key criteria
Yes, your query will update all rows in posts. You have to include a condition that restricts the update to one row. One way to do this:

UPDATE Posts 
SET Content = @Content 
WHERE Id = 
    (SELECT TOP 1 Id 
     FROM Posts 
     WHERE FkThreadId = @Id 
     ORDER BY CreationTime ASC) ;


In SQL-Server, you can't update two tables in one statement, so you have to use two statements. You can put them inside a transaction though, so they are treated as an atom, they either both succeed or fail.