There are seats on Belgrade - Thessaloniki night train, and they are free. There is also one day train on that route.
To go to Athens, you have to change trains in Thessaloniki.
On Belgrade - Sofia - Istanbul route, there used to be direct sleeper only for 15 - 20 EUR supplement (3, or 2 bed compartment), but from December 2008. it isn't runnig anymore. Don't be fooled by timetables which say that it's running. They told it will run again in July, but still no...only way to find out, if it started running again, is to ask directly on Belgrade or Istanbul sirkeci stations.
All in all, if you need to go from Belgrade to Istanbul, you need to take ordinary seat to Sofia at 7:50, and then change there to night train to Istanbul, frome where you have couchette (not more than 10EUR) or sleeper.