For the first case you can use ROW_NUMBER then PIVOT to do this using the modulo operator to divide into columns and the result of integer divsion by 5 to group into rows.
WITH CTE AS ( SELECT C, (ROW_NUMBER() OVER (ORDER BY C) -1)%5 AS Col, (ROW_NUMBER() OVER (ORDER BY C) -1)/5 AS Row FROM YourTable ) SELECT [0], [1], [2], [3], [4] FROM CTE PIVOT (MAX(C) FOR Col IN ([0], [1], [2], [3], [4])) AS Pvt ORDER BY Row
SQL Fiddle
For the second case Oracle has a straight forward syntax to achieve this with PIVOT. SQL Server doesn't but you can do this as below.
WITH CTE AS ( SELECT *, (ROW_NUMBER() OVER (ORDER BY Column1) -1)%5 AS Col, (ROW_NUMBER() OVER (ORDER BY Column1) -1)/5 AS Row FROM YourTable ) SELECT MAX(CASE WHEN Col = 0 THEN Column1 END), MAX(CASE WHEN Col = 0 THEN Column2 END), MAX(CASE WHEN Col = 1 THEN Column1 END), MAX(CASE WHEN Col = 1 THEN Column2 END), MAX(CASE WHEN Col = 2 THEN Column1 END), MAX(CASE WHEN Col = 2 THEN Column2 END), MAX(CASE WHEN Col = 3 THEN Column1 END), MAX(CASE WHEN Col = 3 THEN Column2 END), MAX(CASE WHEN Col = 4 THEN Column1 END), MAX(CASE WHEN Col = 4 THEN Column2 END) FROM CTE GROUP BY Row ORDER BY Row
SQL Fiddle