There is no reason mb_strtolower()and mb_strtoupper()should not work:
<?php
header('Content-Type: text/html; charset=utf-8');
echo mb_strtoupper('παπακωνσταντινου', 'UTF-8');
echo mb_strtolower('ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ', 'UTF-8');
?>
Use mb_convert_case()is another option, especially if you want to emulate ucwords():
<?php
header('Content-Type: text/html; charset=utf-8');
echo mb_convert_case('παπακωνσταντινου', MB_CASE_UPPER, 'UTF-8');
echo mb_convert_case('ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ', MB_CASE_LOWER, 'UTF-8');
echo mb_convert_case('παπακωνσταντινου', MB_CASE_TITLE, 'UTF-8');
?>