Niall Murphy pretty much summed up everything the OP wanted, but I was looking for the ability to also get the body of the message. So for those who are looking for a solution to get the body (or something else related to the thread), here's what I found.
This answer proved to be a great start: https://drupal.stackexchange.com/a/220672/61171
As described there, you can use the privatemsg_thread_load() function to load the entire thread/message array and get pretty much everything you need.
So I used the code in the OP's example to get the thread id and in the loop I loaded the thread with this:
$threadArray = privatemsg_thread_load($thread->thread_id, $account = NULL, $start = NULL, $useAccessDenied = FALSE);
You can tidy that up to fit your needs. But anyway, now if you do:
you will see the whole thread array and pick up what you need. For example to get the body, just go:
$body = $threadArray['messages'][$thread->thread_id]->body;