Pour the milk into a large saucepan and bring to a boil over medium-high heat. Reduce the heat, and slowly pour in the semolina in a steady stream, stirring continuously. Continue to stir and cook until the mixture thickens and boils for 1 to 2 minutes.
Remove the pan from the heat and stir in the eggs and rose water. Pour the mixture into a 9x13 inch serving dish, or individual dishes. Allow the pudding to cool slightly, then cover with plastic wrap directly on the top. Refrigerate, covered, for at least 5 hours or overnight.
Heat 1/2 cup of the sugar and 2 tablespoons of water in a heavy bottomed saucepan over medium-high heat. Stir to dissolve the sugar, then cook until the mixture turns golden brown. Immediately remove from the heat and stir in the rest of the water. Don't worry if the mixture bubbles and hardens a bit, it will dissolve. Return the pan to the stove, and stir in the remaining sugar until dissolved. Add the lemon juice, to the sugar syrup, and bring to a boil. Simmer for 10 minutes. Remove from heat, cover and chill. The syrup will keep for a month if refrigerated in a sealed container.
To serve, whip the whipping cream with sugar until stiff peaks form. Spread a thin layer of whipped cream over the pudding. Sprinkle with chopped nuts. Cut into squares, and serve with caramel syrup poured around it.